autoload utf8_heavy.pl's swash routines in swash_init()
autoload byte.pm when byte:: is seen by the parser
check uv_to_utf8() calls for buffer overflow
+ (see also "Locales", "Regexen", and "Miscellaneous")
Multi-threading
support "use Thread;" under useithreads
make configuring+building away from source directory work (VPATH et al)
_r support
cross-compilation configuring
- POSIX 1003.1 1996 Edition support
+ 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)
+ UNIX98 support: reader-writer locks, realtime/asynchronous IO
+
+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.
Locales
deprecate traditional/legacy locales?
+ How do locales work across packages?
figure out how to support Unicode locales
- locales across packages?
+ suggestion: integrate the IBM Classes for Unicode (ICU)
+ http://oss.software.ibm.com/developerworks/opensource/icu/project/
+ and check out also the Locale Converter:
+ http://alphaworks.ibm.com/tech/localeconverter
+ 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, currencies, date/time and messages; message catalogs
+ (resources) ; transliteration, collation, normalization, and text
+ boundaries (grapheme, word, line-break))".
+ There is also 'iconv', 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
POSIX [=bar=] and [.zap.] would nice too but there's no API for them
- (=bar= could be done with Unicode, though, see TR about normalization forms)
+ =bar= could be done with Unicode, though, see the Unicode TR #15 about
+ normalization forms:
+ http://www.unicode.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'
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
Miscellaneous
add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?)
- sub-second sleep? (integrate Time::HiRes?)
- floating point handling: nans, infinities, fp exception masks, etc
+ 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(), isnan(), isinf(), isfinite(), finite(), isnormal(),
+ fp_setmask(), fp_getmask(), fp_setround(), fp_getround(),
+ ieeefp.h, fp_class.h. There are metaconfig units for all of these.
+ fix the basic arithmetics (+ - * / %) to preserve IVness/UVness if
+ both arguments are IVs/UVs
replace pod2html with new PodtoHtml? (requires other modules from CPAN)
automate testing with large parts of CPAN
- Unicode collation?
+ Unicode collation? http://www.unicode.org/unicode/reports/tr10/
+ 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 units exist)
Ongoing
keep filenames 8.3 friendly, where feasible