summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/Todo-5.6
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/Todo-5.6')
-rw-r--r--contrib/perl5/Todo-5.6186
1 files changed, 0 insertions, 186 deletions
diff --git a/contrib/perl5/Todo-5.6 b/contrib/perl5/Todo-5.6
deleted file mode 100644
index 71aca9c..0000000
--- a/contrib/perl5/Todo-5.6
+++ /dev/null
@@ -1,186 +0,0 @@
-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 handle:
- 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 \uXXXX (and \u{XXXX}?) where XXXX are hex digits
- to work similarly to Unicode tech reports and Java
- notation \uXXXX (and already existing \x{XXXX))?
- more than four hexdigits? make also \U+XXXX work?
- overloadable regex assertions? e.g. in Thai \b cannot
- be deduced by any simple character class boundary rules,
- word boundaries must algorithmically computed
-
- see ext/Encode/Todo for notes and references about proper detection
- 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 configuring (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 EXTENSION
- 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\d+) 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.software.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, currencies,
- date/time and messages; message catalogs (resources);
- transliteration, collation, normalization, and text
- boundaries (grapheme, word, line-break))".
- Check out also the Locale Converter:
- http://alphaworks.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 subclasses
- (e.g. \D, [:^digit:]), but a more generic way to add/subtract/
- intersect characters/classes, like described in the Unicode technical
- report on Regular Expression Guidelines,
- http://www.unicode.org/unicode/reports/tr18/
- (amusingly, 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.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'
- trie optimization: factor out common suffixes (and prefixes?)
- from |-alternating groups (both for exact strings and character
- 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') compatibility
- 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(), finite(), 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 IVness/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
-
OpenPOWER on IntegriCloud