Commit | Line | Data |
---|---|---|
56d7751a | 1 | Bugs |
56d7751a GS |
2 | fix small memory leaks on compile-time failures |
3 | ||
6dd11d31 | 4 | Unicode support |
d1edabcf GS |
5 | finish byte <-> utf8 and localencoding <-> utf8 conversions |
6 | make substr($bytestr,0,0,$charstr) do the right conversion | |
6dd11d31 GS |
7 | add Unicode::Map equivivalent to core |
8 | add support for I/O disciplines | |
d1edabcf GS |
9 | - a way to specify disciplines when opening things: |
10 | open(F, "<:crlf :utf16", $file) | |
11 | - a way to specify disciplines for an already opened handle: | |
12 | binmode(STDIN, ":slurp :raw") | |
13 | - a way to set default disciplines for all handle constructors: | |
14 | use open IN => ":any", OUT => ":utf8", SYS => ":utf16" | |
6dd11d31 | 15 | eliminate need for "use utf8;" |
6dd11d31 | 16 | autoload utf8_heavy.pl's swash routines in swash_init() |
d1edabcf | 17 | autoload byte.pm when byte:: is seen by the parser |
560a288e | 18 | check uv_to_utf8() calls for buffer overflow |
fe32fb73 | 19 | (see also "Locales", "Regexen", and "Miscellaneous") |
6dd11d31 | 20 | |
d7d0d977 | 21 | Multi-threading |
6dd11d31 GS |
22 | support "use Thread;" under useithreads |
23 | add mechanism to: | |
24 | - create new interpreter in a different thread | |
25 | - exchange data between interpreters/threads | |
26 | - share namespaces between interpreters/threads | |
27 | work out consistent semantics for exit/die in threads | |
28 | support for externally created threads? | |
29 | Thread::Pool? | |
d7d0d977 MB |
30 | |
31 | Compiler | |
32 | auto-produce executable | |
33 | typed lexicals should affect B::CC::load_pad | |
34 | workarounds to help Win32 | |
d7d0d977 MB |
35 | END blocks need saving in compiled output |
36 | _AUTOLOAD prodding | |
25f62d1c MB |
37 | fix comppadlist (names in comppad_name can have fake SvCUR |
38 | from where newASSIGNOP steals the field) | |
d7d0d977 | 39 | |
5152d7c7 | 40 | Namespace cleanup |
6dd11d31 GS |
41 | CPP-space: restrict what we export from headers when !PERL_CORE |
42 | header-space: move into CORE/perl/? | |
43 | API-space: complete the list of things that constitute public api | |
5152d7c7 | 44 | |
45ebb638 JH |
45 | Configure |
46 | make configuring+building away from source directory work (VPATH et al) | |
47 | _r support | |
48 | cross-compilation configuring | |
1d82895f JH |
49 | POSIX 1003.1 1996 Edition support--realtime stuff: |
50 | POSIX semaphores, message queues, shared memory, realtime clocks, | |
51 | timers, signals (the metaconfig units mostly already exist for these) | |
52 | UNIX98 support: reader-writer locks, realtime/asynchronous IO | |
45ebb638 | 53 | |
fe32fb73 JH |
54 | Long doubles |
55 | figure out where the PV->NV->PV conversion gets it wrong at least | |
56 | in AIX and Tru64 (V5.0 and onwards) when using long doubles: see the | |
57 | regexp tricks we had to insert to t/comp/use.t and t/lib/bigfltpm.t. | |
58 | ||
45ebb638 | 59 | Locales |
6dd11d31 | 60 | deprecate traditional/legacy locales? |
8bce6328 | 61 | How do locales work across packages? |
6dd11d31 | 62 | figure out how to support Unicode locales |
1d82895f | 63 | suggestion: integrate the IBM Classes for Unicode (ICU) |
8bce6328 | 64 | http://oss.software.ibm.com/developerworks/opensource/icu/project/ |
1d82895f JH |
65 | and check out also the Locale Converter: |
66 | http://alphaworks.ibm.com/tech/localeconverter | |
8bce6328 JH |
67 | ICU is "portable, open-source Unicode library with: |
68 | charset-independent locales (with multiple locales simultaneously | |
69 | supported in same thread; character conversions; formatting/parsing | |
70 | for numbers, currencies, date/time and messages; message catalogs | |
71 | (resources) ; transliteration, collation, normalization, and text | |
72 | boundaries (grapheme, word, line-break))". | |
73 | There is also 'iconv', either from XPG4 or GNU (glibc). | |
74 | iconv is about character set conversions. | |
75 | Either ICU or iconv would be valuable to get integrated | |
fe32fb73 | 76 | into Perl, Configure already probes for libiconv and <iconv.h>. |
45ebb638 JH |
77 | |
78 | Regexen | |
6dd11d31 | 79 | make RE engine thread-safe |
b8c5462f | 80 | POSIX [=bar=] and [.zap.] would nice too but there's no API for them |
1d82895f JH |
81 | =bar= could be done with Unicode, though, see the Unicode TR #15 about |
82 | normalization forms: | |
83 | http://www.unicode.org/unicode/reports/tr15/ | |
84 | this is also a part of the Unicode 3.0: | |
85 | http://www.unicode.org/unicode/uni2book/u2.html | |
86 | executive summary: there are several different levels of 'equivalence' | |
45ebb638 JH |
87 | approximate matching |
88 | ||
19e16c31 JH |
89 | Security |
90 | use fchown, fchmod (and futimes?) internally when possible | |
91 | use fchdir(how portable?) | |
fe32fb73 JH |
92 | create secure reliable portable temporary file modules |
93 | audit the standard utilities for security problems and fix them | |
19e16c31 | 94 | |
5152d7c7 | 95 | Reliable Signals |
54aff467 | 96 | custom opcodes |
5152d7c7 GS |
97 | alternate runops() for signal despatch |
98 | figure out how to die() in delayed sighandler | |
6dd11d31 | 99 | make Thread::Signal work under useithreads |
5152d7c7 GS |
100 | |
101 | Win32 stuff | |
6dd11d31 | 102 | sort out the spawnvp() mess for system('a','b','c') compatibility |
5152d7c7 | 103 | work out DLL versioning |
5152d7c7 GS |
104 | |
105 | Miscellaneous | |
0ff51efc | 106 | add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?) |
fe32fb73 JH |
107 | sub-second sleep()? alarm()? time()? (integrate Time::HiRes? |
108 | Configure doesn't yet probe for usleep/nanosleep/ualarm but | |
109 | the units exist) | |
110 | floating point handling: nans, infinities, fp exception masks, etc. | |
111 | at least the following interfaces exist: fp_classify(), fp_class(), | |
112 | class(), isnan(), isinf(), isfinite(), finite(), isnormal(), | |
113 | fp_setmask(), fp_getmask(), fp_setround(), fp_getround(), | |
114 | ieeefp.h, fp_class.h. There are metaconfig units for all of these. | |
115 | fix the basic arithmetics (+ - * / %) to preserve IVness/UVness if | |
116 | both arguments are IVs/UVs | |
6dd11d31 | 117 | replace pod2html with new PodtoHtml? (requires other modules from CPAN) |
245ccdfc | 118 | automate testing with large parts of CPAN |
fe32fb73 JH |
119 | Unicode collation? http://www.unicode.org/unicode/reports/tr10/ |
120 | turn Cwd into an XS module? (Configure already probes for getcwd()) | |
121 | mmap for speeding up input? (Configure already probes for the mmap family) | |
122 | sendmsg, recvmsg? (Configure doesn't probe for these but the units exist) | |
123 | setitimer, getitimer? (the units exist) | |
245ccdfc GS |
124 | |
125 | Ongoing | |
126 | keep filenames 8.3 friendly, where feasible | |
127 | upgrade to newer versions of all independently maintained modules | |
9cc29783 | 128 | comprehensive perldelta.pod |
5152d7c7 | 129 | |
d7d0d977 | 130 | Documentation |
5152d7c7 GS |
131 | describe new age patterns |
132 | update perl{guts,call,embed,xs} with additions, changes to API | |
c6018dae | 133 | convert more examples to use autovivified filehandles |
5152d7c7 | 134 | document Win32 choices |
5152d7c7 | 135 | spot-check all new modules for completeness |
11162842 | 136 | better docs for pack()/unpack() |
245ccdfc | 137 | reorg tutorials vs. reference sections |