can
Unicode support
    finish byte <-> utf8 and localencoding <-> utf8 conversions
    add Unicode::Map equivivalent to core
    add support for I/O disciplines
        - a way to specify disciplines when opening things:
open(F, "<:crlf :utf16", $file)
        - a way to specify disciplines for an already opened han-
dle:            binmode(STDIN, ":slurp :raw")      - a way to set
default disciplines for all  handle  constructors:            use
open IN => ":any", OUT => ":utf8", SYS => ":utf16"
    eliminate need for "use utf8;"
    autoload byte.pm when byte:: is seen by the parser
    check uv_to_utf8() calls for buffer overflow
    make  XXXX  (and  {XXXX}?)  where XXXX are hex digits      to
work similarly to Unicode tech  reports  and  Jaca       notation
XXXX (and already existing XXX))?       more thaa four hexdigits?
make also U+XXXX work?                          n
    overloadable regex assertions? e.g. in Thai n
        be deduced by any simple character classoboundary rules,
        word boundaries must algorithmically computed

    see ext/Encode/Todo for notes and references about proper de-
tection
    of malformed UTF-8

    SCSU?          http://www.unicode.org/unicode/reports/tr6/
    Collation?     http://www.unicode.org/unicode/reports/tr10/
    Normalization? http://www.unicode.org/unicode/reports/tr15/
    EBCDIC?        http://www.unicode.org/unicode/reports/tr16/
    Regexes?       http://www.unicode.org/unicode/reports/tr18/
    Case Mappings? http://www.unicode.org/unicode/reports/tr21/

    See also "Locales", "Regexen", and "Miscellaneous".

Multi-threading
    support "use Thread;" under useithreads
    add mechanism to:
      - create new interpreter in a different thread
      - exchange data between interpreters/threads
      - share namespaces between interpreters/threads
    work out consistent semantics for exit/die in threads
    support for externally created threads?
    Thread::Pool?

Compiler
    auto-produce executable
    typed lexicals should affect B::CC::load_pad
    workarounds to help Win32
    END blocks need saving in compiled output
    _AUTOLOAD prodding
    fix  comppadlist  (names  in comppad_name can have fake SvCUR
     from where newASSIGNOP steals the field)

Namespace cleanup
    CPP-space:    restrict  what  we  export  from  headers  when
!PERL_CORE
    header-space: move into CORE/perl/?
    API-space:     complete  the  list  of things that constitute
public api

Configure
    make configuring+building away  from  source  directory  work
(VPATH  et al)      this is related to: cross-compilation config-
uring (see Todo)
    _r support (see Todo for mode detailed description)
    POSIX 1003.1 1996 Edition support--realtime stuff:      POSIX
semaphores,  message  queues,  shared  memory,  realtime  clocks,
     timers, signals (the metaconfig units mostly  already  exist
for these)      PREFERABLY AS AN EXTENSION
    UNIX98 support: reader-writer locks, realtime/asynchronous IO
     PREFERABLY AS AN EXTENSION
    IPv6 support: see RFC2292, RFC2553      PREFERABLY AS AN  EX-
TENSION      there already is Socket6 in CPAN

Long doubles
    figure  out  where the PV->NV->PV conversion gets it wrong at
least
    in AIX and Tru64 (V5.0 and onwards) when using long  doubles:
see the
    regexp   tricks   we   had  to  insert  to  t/comp/use.t  and
t/lib/bigfltpm.t,
     (?:9|8999+) and the like.

64-bit support
    Configure probe for quad_t,  uquad_t,  and  (argh)  u_quad_t,
they might
    be  in  some  systems  the only thing working as quadtype and
uquadtype.
    more pain: long_long, u_long_long.

Locales
    deprecate traditional/legacy locales?
    How do locales work across packages?
    figure out how to support  Unicode  locales       suggestion:
integrate the IBM Classes for Unicode (ICU)      http://oss.soft-
ware.ibm.com/developerworks/opensource/icu/project/           ICU
is     "portable,     open-source     Unicode    library    with:
          charset-independent  locales  (with  multiple   locales
          simultaneously  supported  in  same  thread;  character
          conversions; formatting/parsing  for  numbers,  curren-
cies,            date/time  and  messages;  message catalogs (re-
sources);            transliteration,  collation,  normalization,
and  text            boundaries  (grapheme,  word, line-break))".
     Check out  also  the  Locale  Converter:       http://alpha-
works.ibm.com/tech/localeconverter
    There  is  also  the iconv interface, either from XPG4 or GNU
(glibc).
    iconv is about character set conversions.
    Either ICU or iconv would be valuable to get integrated
    into  Perl,  Configure  already  probes  for   libiconv   and
<iconv.h>.

Regexen
   make RE engine thread-safe
   a  way  to  do  full character set arithmetics: now one can do
     addition, negate a whole class, and negate certain subclass-
es       (e.g.   but a more generic way to add/subtract/      in-
tersect characters/classes, like described in the Unicode techni-
cal          report    on    Regular    Expression    Guidelines,
     http://www.unicode.org/unicode/reports/tr18/       (amusing-
ly,  the  TR  notes that difference and intersection       can be
done  using  "Perl-style  look-ahead")       difference   syntax?
maybe [[:alpha:][^abc]] meaning      "all alphabetic expect a, b,
and c"? or [[:alpha:]-[abc]]?       (maybe bad, as we  explicitly
disallow   such   'ranges')        intersection   syntax?   maybe
[[..]&[...]]?
   POSIX [=bar=] and [.zap.] would nice too but  there's  no  API
for them
     =bar= could be done with Unicode, though, see the Unicode TR
#15   about        normalization   forms:         http://www.uni-
code.org/unicode/reports/tr15/       this  is  also a part of the
Unicode 3.0:      http://www.unicode.org/unicode/uni2book/u2.html
     executive  summary:  there  are  several different levels of
'equivalence'
   trie optimization: factor out common suffixes (and  prefixes?)
     from  |-alternating groups (both for exact strings and char-
acter      classes, use lookaheads?)
   approximate matching

Security
    use fchown, fchmod (and futimes?) internally when possible
    use fchdir(how portable?)
    create secure reliable portable temporary file modules
    audit the standard utilities for security  problems  and  fix
them

Reliable Signals
    custom opcodes
    alternate runops() for signal despatch
    figure out how to die() in delayed sighandler
    make Thread::Signal work under useithreads

Win32 stuff
    sort  out the spawnvp() mess for system('a','b','c') compati-
bility
    work out DLL versioning

Miscellaneous
    introduce @( and @) because group names can have spaces
    add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?)
    sub-second sleep()? alarm()? time()? (integrate  Time::HiRes?
     Configure  doesn't yet probe for usleep/nanosleep/ualarm but
     the units exist)
    floating  point  handling:  nans,  infinities,  fp  exception
masks,  etc.        At  least  the  following  interfaces  exist:
fp_classify(), fp_class(),      class(), isinf(), isfinite(), fi-
nite(),  isnormal(),  unordered(),       <ieeefp.h>, <fp_class.h>
(there are metaconfig units for  all  these),       fp_setmask(),
fp_getmask(),  fp_setround(),  fp_getround()       (no metaconfig
units yet for these).
        Don't forget finitel(), fp_classl(), fp_class_l(),  (yes,
both    do,        unfortunately,   exist),   and   unorderedl().
     PREFERABLY AS AN EXTENSION.       As of 5.6.1 there  is  cpp
macro Perl_isnan().
    fix  the  basic  arithmetics  (+  -  *  /  %) to preserve IV-
ness/UVness if      both arguments are IVs/UVs: it sucks that one
cannot  see      the 'carry flag' (or equivalent) of the CPU from
C,      C is too high-level...
    replace pod2html with new PodtoHtml? (requires other  modules
from CPAN)
    automate testing with large parts of CPAN
    turn  Cwd  into  an XS module?  (Configure already probes for
getcwd())
    mmap for speeding up input? (Configure already probes for the
mmap family)
    sendmsg,  recvmsg? (Configure doesn't probe for these but the
units exist)
    setitimer, getitimer? (the metaconfig units exist)

Ongoing
    keep filenames 8.3 friendly, where feasible
    upgrade to newer versions  of  all  independently  maintained
modules
    comprehensive perldelta.pod

Documentation
    describe new age patterns
    update  perl{guts,call,embed,xs}  with  additions, changes to
API
    convert more examples to use autovivified filehandles
    document Win32 choices
    spot-check all new modules for completeness
    better docs for pack()/unpack()
    reorg tutorials vs. reference sections
    make roffitall to be dynamical about its pods and libs