-
Notifications
You must be signed in to change notification settings - Fork 29
/
TODO
72 lines (46 loc) · 2.27 KB
/
TODO
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
This is not an exhaustive list of TODO items.
* Can we overload readline()? Will that change <>?
* Ditto for readpipe().
* What do setpgrp(), setpriority() and telldir() return?
* tell() requires special handling, it returns -1 on failure.
* Is it an error for wait() or waitpid() to return -1? Currently
we don't check wait() or waitpid() at all.
* Is there any point trying to examine the return from sleep()?
* I don't think seekdir() returns anything. It certainly doesn't
in Linux, but double-check in Perl.
* autodie doesn't seem to give consistent error messages if it fails
to compile replacement code. In particular, it doesn't seem to
halt the running program. This deserves more investigation, and
seems to be centered around the "Carp::confess("$@") if $@" line
in Fatal.pm
* use Fatal qw(system) now works! Test to make sure it works sensibly
with Fatal semantics, rather than accidently slipping in autodie
semantics. What does it mean for Fatal semantics to exist here?
* Write a bunch of tests for the exception API
* (More?) tests for user defined subs!
* Generate a good way to allow subroutines to register themselves
with roles and message handlers, possibly defining their own
exception handler to use.
* Provide an autodie mixin which at least provides expected autodie
behaviours, even if someone wants to use their own exception class.
* Provide a nicer way to override message handlers.
* Write more documentation.
* Write more tests.
* Test the many varied forms of sysopen.
* Test fcntl.
* !!! We need a proper way to override exceptions from system!
* Make sure that all the internal subroutines in Fatal continue to
work using their old wacky interfaces.
* Test open(my $fh, '|-') || exec().
* Consider what happens when import is called at run-time!
(Both in 5.10 and 5.8, but especially 5.8)
== Wishlist ==
* Reduce the number of lexical guards we need in our array.
We should be able to combine these, or have a single guard
that does the right thing.
* Think about padwalker integration. This can give us really
pretty errors!
* Catch require/do and remove any autodying subs upon entry.
At the end of file, replace them. This is a better solution
to using leak-guards, which require more time and space at
run-time.