Upgrade to Devel::PPPort 3.11_05
[p5sagit/p5-mst-13.2.git] / ext / Devel / PPPort / TODO
1 TODO:
2
3 * bump __MAX_PERL__ before 5.10
4
5 * > 3. In several cases, "perl ppport.h --copy=.new" output a new file in
6   > which the only change was the addition of "#include "ppport.h"". In each
7   > case, that actually wasn't necessary because the source file in question
8   > already #included another source file which #included ppport.h itself.
9   > Would it be possible for the analyzer to follow #include directives to
10   > spot cases like this?
11
12   Uh, well, I guess it would be possible. But I have some concerns:
13
14   1. ppport.h is already too big. :-)
15
16   2. There is code in ppport.h to actually remove an
17
18        #include "ppport.h"
19
20      if it appears not to be needed. If it's not needed in your
21      included file, it might be dropped from there and moved to
22      the other file that included the first one. This would make
23      the logic much more complicated.
24
25   3. As ppport.h is configurable, it's not (always) a good idea
26      to put it into a file that's included from another file.
27
28   I guess I'll have to think about this a little more. Maybe I can
29   come up with a fancy solution that doesn't increase the code size
30   too much.
31
32
33 * On 14/12/06, Nicholas Clark <nick@ccl4.org> wrote:
34   > On Thu, Dec 14, 2006 at 05:03:24AM +0100, Andreas J. Koenig wrote:
35   >  
36   > > Params::Validate and Clone suffer from the same cold:  
37   >
38   > The same patch will make both compile and pass tests.
39   > I'm wondering if it might be better to totally drop SVt_PBVM and let source
40   > code fail to compile.  
41   
42   I don't think so. Because :
43   1. your redefinition of SVt_PBVM is probably what most XS modules want
44   2. anyway, if we remove it from the core, it might appear in Devel::PPPort :)
45
46
47 * maybe backport bytes_from_utf8() for 5.6.0 (or even before)?
48
49 * check which of the following we need to support:
50
51     amagic_generation
52     AMG_names
53     an
54     Argv
55     argvgv
56     argvoutgv
57     basetime
58     beginav
59     block_type
60     bodytarget
61     bufend
62     bufptr
63     check
64     chopset
65     Cmd
66     compcv
67     compiling
68     comppad
69     comppad_name
70     comppad_name_fill
71     copline
72     cop_seqmax
73     cryptseen
74     cshlen
75     cshname
76     curcop
77     curinterp
78     curpad
79     curpm
80     curstash
81     curstname
82     dbargs
83     DBgv
84     DBline
85     DBsignal
86     DBsingle
87     DBsub
88     DBtrace
89     debstash
90     debug
91     defgv
92     defoutgv
93     defstash
94     delaymagic
95     diehook
96     dirty
97     doextract
98     doswitches
99     do_undump
100     dowarn
101     egid
102     encoding
103     endav
104     envgv
105     errgv
106     error_count
107     errors
108     euid
109     eval_root
110     evalseq
111     eval_start
112     expect
113     fdpid
114     filemode
115     firstgv
116     fold
117     forkprocess
118     formfeed
119     formtarget
120     freq
121     generation
122     gensym
123     gid
124     hexdigit
125     hints
126     incgv
127     in_eval
128     in_my
129     inplace
130     lastfd
131     last_in_gv
132     last_lop
133     last_lop_op
134     lastscream
135     laststatval
136     laststype
137     last_uni
138     lex_brackets
139     lex_brackstack
140     lex_casemods
141     lex_casestack
142     lex_defer
143     lex_dojoin
144     lex_expect
145     lex_formbrack
146     lex_inpat
147     lex_inwhat
148     lex_op
149     lex_repl
150     lex_starts
151     lex_state
152     lex_stuff
153     lineary
154     linestr
155     localizing
156     main_cv
157     main_root
158     mainstack
159     main_start
160     markstack
161     markstack_max
162     markstack_ptr
163     max_intro_pending
164     maxo
165     maxscream
166     maxsysfd
167     min_intro_pending
168     minus_a
169     minus_c
170     minus_F
171     minus_l
172     minus_n
173     minus_p
174     multi_close
175     multi_end
176     multi_open
177     multi_start
178     na
179     nexttoke
180     nexttype
181     nextval
182     nice_chunk
183     nice_chunk_size
184     No
185     no_aelem
186     no_dir_func
187     no_func
188     no_mem
189     nomemok
190     no_modify
191     no_myglob
192     no_security
193     no_sock_func
194     no_symref
195     no_usym
196     no_wrongref
197     nrs
198     oldbufptr
199     oldname
200     oldoldbufptr
201     op
202     opargs
203     op_desc
204     op_mask
205     op_name
206     op_seq
207     origalen
208     origargc
209     origargv
210     origenviron
211     origfilename
212     osname
213     padix
214     padix_floor
215     pad_reset_pending
216     patchlevel
217     patleave
218     perldb
219     perl_destruct_level
220     pidstatus
221     ppaddr
222     preambleav
223     preambled
224     preprocess
225     profiledata
226     regdummy
227     regendp
228     regeol
229     reginput
230     regkind
231     reglastparen
232     regsize
233     regstartp
234     restartop
235     rs
236     rsfp
237     rsfp_filters
238     runops
239     savestack
240     savestack_ix
241     savestack_max
242     sawampersand
243     scopestack
244     scopestack_ix
245     scopestack_max
246     screamfirst
247     screamnext
248     secondgv
249     signals
250     sig_name
251     sig_num
252     simple
253     sortcop
254     sortstash
255     splitstr
256     stack_base
257     stack_max
258     stack_sp
259     statbuf
260     statcache
261     statgv
262     statname
263     statusvalue
264     stdingv
265     sub_generation
266     subline
267     subname
268     Sv
269     sv_arenaroot
270     sv_count
271     sv_no
272     sv_objcount
273     sv_root
274     sv_undef
275     sv_yes
276     tainted
277     tainting
278     timesbuf
279     tmps_floor
280     tmps_ix
281     tmps_max
282     tmps_stack
283     tokenbuf
284     top_env
285     toptarget
286     uid
287     unsafe
288     varies
289     vtbl_amagic
290     vtbl_amagicelem
291     vtbl_arylen
292     vtbl_bm
293     vtbl_dbline
294     vtbl_env
295     vtbl_envelem
296     vtbl_glob
297     vtbl_isa
298     vtbl_isaelem
299     vtbl_mglob
300     vtbl_pack
301     vtbl_packelem
302     vtbl_pos
303     vtbl_sig
304     vtbl_sigelem
305     vtbl_substr
306     vtbl_sv
307     vtbl_taint
308     vtbl_uvar
309     vtbl_vec
310     warnhook
311     warn_nl
312     warn_nosemi
313     warn_reserved
314     warn_uninit
315     watchaddr
316     watchok
317     Xpv
318     Yes
319
320 * have an --env option for soak to set env variable combinations
321
322 * only overwrite generated files if they actually changed
323
324 * try to make parts/apicheck.pl automatically find NEED_ #defines
325
326 * implement snprintf with newSVpvf for >= 5.004, which is safer?
327
328 * add support for my_vsnprintf?
329
330 * try to perform some core consistency checks:
331
332   - check if 'd' flag in embed.fnc matches with
333     supplied documentation
334
335   - check if all public API is documented
336
337 * check (during make regen?) if MAX_PERL in PPPort_pm.PL
338   needs to be updated
339
340 * see if we can implement sv_catpvf() for < 5.004
341
342 * MULTICALL ?
343
344 * improve apicheck (things like utf8_mg_pos_init() are
345   not currently checked)
346
347 * more documentation, more tests
348
349 * Resolve dependencies in Makefile.PL and remind of
350   running 'make regen'
351