Commit | Line | Data |
adfe19db |
1 | TODO: |
0a7c7f4f |
2 | |
679ad62d |
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 | |
d2dacc4f |
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 | |
679ad62d |
45 | * maybe backport bytes_from_utf8() for 5.6.0 (or even before)? |
46 | |
cac25305 |
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 | |
aef0a14c |
322 | * try to make parts/apicheck.pl automatically find NEED_ #defines |
323 | |
0c96388f |
324 | * implement snprintf with newSVpvf for >= 5.004, which is safer? |
325 | |
326 | * add support for my_vsnprintf? |
327 | |
328 | * try to perform some core consistency checks: |
f2ab5a41 |
329 | |
0c96388f |
330 | - check if 'd' flag in embed.fnc matches with |
331 | supplied documentation |
332 | |
333 | - check if all public API is documented |
334 | |
335 | * check (during make regen?) if MAX_PERL in PPPort_pm.PL |
336 | needs to be updated |
337 | |
338 | * see if we can implement sv_catpvf() for < 5.004 |
f2ab5a41 |
339 | |
0d0f8426 |
340 | * MULTICALL ? |
341 | |
04fc8b94 |
342 | * improve apicheck (things like utf8_mg_pos_init() are |
9132e1a3 |
343 | not currently checked) |
04fc8b94 |
344 | |
adfe19db |
345 | * more documentation, more tests |
0a7c7f4f |
346 | |
adfe19db |
347 | * Resolve dependencies in Makefile.PL and remind of |
348 | running 'make regen' |
0a7c7f4f |
349 | |