summaryrefslogtreecommitdiff
path: root/Todo-5.6
blob: 8ae31ad4978e9fa4102f11835229bc9c8944e5e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Bugs
    fix small memory leaks on compile-time failures

Unicode support
    finish byte <-> utf8 and localencoding <-> utf8 conversions 
    make substr($bytestr,0,0, $charstr) do the right conversion
    add Unicode::Map equivivalent to core
    add support for I/O disciplines
        - open(F, "<!crlf!utf16", $file)
	- binmode(STDIN, "<!crlf!utf16")?
	- a way to set the "system" discipline (binmode("!crlf!utf16") maybe?)
	- nice IO::Filter module to push/pop disciplines
    eliminate need for "use utf8;"
    support C<print v1.2.3>
    make C<v123> mean C<chr(123)> (if !exists(&v123))
    autoload utf8_heavy.pl's swash routines in swash_init()
    check uv_to_utf8() calls for buffer overflow

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)
    _r support
    cross-compilation configuring
    POSIX 1003.1 1996 Edition support

Locales
    deprecate traditional/legacy locales?
    figure out how to support Unicode locales
    locales across packages?

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)
   approximate matching

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
    add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?)
    replace pod2html with new PodtoHtml? (requires other modules from CPAN)
    automate testing with large parts of CPAN

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
    document Win32 choices
    spot-check all new modules for completeness
    better docs for pack()/unpack()
    reorg tutorials vs. reference sections