This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
integrate cfgperl changes into mainline
[perl5.git] / Todo
... / ...
CommitLineData
1Check out always the latest perl5-porters discussions on these subjects
2before embaring on an implementation tour.
3
4Tie Modules
5 VecArray Implement array using vec()
6 SubstrArray Implement array using substr()
7 VirtualArray Implement array using a file
8 ShiftSplice Defines shift et al in terms of splice method
9
10Would be nice to have
11 pack "(stuff)*", "(stuff)4", ...
12 Contiguous bitfields in pack/unpack
13 lexperl
14 Bundled perl preprocessor
15 Use posix calls internally where possible
16 gettimeofday (possibly best left for a module?)
17 format BOTTOM
18 -i rename file only when successfully changed
19 All ARGV input should act like <>
20 report HANDLE [formats].
21 support in perlmain to rerun debugger
22 regression tests using __DIE__ hook
23 reference to compiled regexp
24 lexically scoped functions: my sub foo { ... }
25 lvalue functions
26 wantlvalue? more generalized want()?
27 named prototypes: sub ($foo, @bar) foo { ... }
28 regression/sanity tests for suidperl
29 iterators/lazy evaluation/continuations/first/
30 first_defined/short-circuiting grep/??
31 This is a very thorny and hotly debated subject,
32 tread carefully and do your homework first.
33 Full 64 bit support (i.e. "long long"). Things to consider:
34 how to store/retrieve 32+ integers into/from Perl scalars?
35 32+ constants in Perl code? (non-portable!)
36 32+ arguments/return values to/from system calls? (seek et al)
37 32+ bit ops (&|^~, currently explicitly disabled)
38 Generalise Errno way of extracting cpp symbols and use that in
39 Errno and Fcntl (ExtUtils::CppSymbol?)
40 The _r-problem: for all the {set,get,end}*() system database
41 calls (and a couple more: readdir, *rand*, crypt, *time,
42 tmpnam) there are in many systems the _r versions
43 to be used in re-entrant (=multithreaded) code.
44 Icky things: the _r API is not standardized and
45 the _r-forms require per-thread data to store their state.
46 Memory profiler: turn malloc.c:Perl_dump_mstats() into
47 an extension (Devel::MProf?) that would return the malloc
48 stats in a nice Perl datastructure (also a simple interface
49 to return just the grand total would be good).
50
51Possible pragmas
52 debugger
53 optimize (use less memory, CPU)
54
55Optimizations
56 constant function cache
57 switch structures
58 foreach(reverse...)
59 Set KEEP on constant split
60 Cache eval tree (unless lexical outer scope used (mark in &compiling?))
61 rcatmaybe
62 Shrink opcode tables via multiple implementations selected in peep
63 Cache hash value? (Not a win, according to Guido)
64 Optimize away @_ where possible
65 "one pass" global destruction
66 Rewrite regexp parser for better integrated optimization
67 LRU cache of regexp: foreach $pat (@pats) { foo() if /$pat/ }
68
69Vague possibilities
70 ref function in list context
71 make tr/// return histogram in list context?
72 Loop control on do{} et al
73 Explicit switch statements
74 built-in globbing
75 compile to real threaded code
76 structured types
77 autocroak?
78 Modifiable $1 et al
79