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