| 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 | |