| TODO: |
| |
| * > 3. In several cases, "perl ppport.h --copy=.new" output a new file in |
| > which the only change was the addition of "#include "ppport.h"". In each |
| > case, that actually wasn't necessary because the source file in question |
| > already #included another source file which #included ppport.h itself. |
| > Would it be possible for the analyzer to follow #include directives to |
| > spot cases like this? |
| |
| Uh, well, I guess it would be possible. But I have some concerns: |
| |
| 1. ppport.h is already too big. :-) |
| |
| 2. There is code in ppport.h to actually remove an |
| |
| #include "ppport.h" |
| |
| if it appears not to be needed. If it's not needed in your |
| included file, it might be dropped from there and moved to |
| the other file that included the first one. This would make |
| the logic much more complicated. |
| |
| 3. As ppport.h is configurable, it's not (always) a good idea |
| to put it into a file that's included from another file. |
| |
| I guess I'll have to think about this a little more. Maybe I can |
| come up with a fancy solution that doesn't increase the code size |
| too much. |
| |
| |
| * On 14/12/06, Nicholas Clark <nick@ccl4.org> wrote: |
| > On Thu, Dec 14, 2006 at 05:03:24AM +0100, Andreas J. Koenig wrote: |
| > |
| > > Params::Validate and Clone suffer from the same cold: |
| > |
| > The same patch will make both compile and pass tests. |
| > I'm wondering if it might be better to totally drop SVt_PBVM and let source |
| > code fail to compile. |
| |
| I don't think so. Because : |
| 1. your redefinition of SVt_PBVM is probably what most XS modules want |
| 2. anyway, if we remove it from the core, it might appear in Devel::PPPort :) |
| |
| |
| * maybe backport bytes_from_utf8() for 5.6.0 (or even before)? |
| |
| * check which of the following we need to support: |
| |
| amagic_generation |
| AMG_names |
| an |
| Argv |
| argvgv |
| argvoutgv |
| basetime |
| beginav |
| block_type |
| bodytarget |
| bufend |
| bufptr |
| check |
| chopset |
| Cmd |
| compcv |
| compiling |
| comppad |
| comppad_name |
| comppad_name_fill |
| copline |
| cop_seqmax |
| cryptseen |
| cshlen |
| cshname |
| curcop |
| curinterp |
| curpad |
| curpm |
| curstash |
| curstname |
| dbargs |
| DBgv |
| DBline |
| DBsignal |
| DBsingle |
| DBsub |
| DBtrace |
| debstash |
| debug |
| defgv |
| defoutgv |
| defstash |
| delaymagic |
| diehook |
| dirty |
| doextract |
| doswitches |
| do_undump |
| dowarn |
| egid |
| encoding |
| endav |
| envgv |
| errgv |
| error_count |
| errors |
| euid |
| eval_root |
| evalseq |
| eval_start |
| expect |
| fdpid |
| filemode |
| firstgv |
| fold |
| forkprocess |
| formfeed |
| formtarget |
| freq |
| generation |
| gensym |
| gid |
| hexdigit |
| hints |
| incgv |
| in_eval |
| in_my |
| inplace |
| lastfd |
| last_in_gv |
| last_lop |
| last_lop_op |
| lastscream |
| laststatval |
| laststype |
| last_uni |
| lex_brackets |
| lex_brackstack |
| lex_casemods |
| lex_casestack |
| lex_defer |
| lex_dojoin |
| lex_expect |
| lex_formbrack |
| lex_inpat |
| lex_inwhat |
| lex_op |
| lex_repl |
| lex_starts |
| lex_state |
| lex_stuff |
| lineary |
| linestr |
| localizing |
| main_cv |
| main_root |
| mainstack |
| main_start |
| markstack |
| markstack_max |
| markstack_ptr |
| max_intro_pending |
| maxo |
| maxscream |
| maxsysfd |
| min_intro_pending |
| minus_a |
| minus_c |
| minus_F |
| minus_l |
| minus_n |
| minus_p |
| multi_close |
| multi_end |
| multi_open |
| multi_start |
| na |
| nexttoke |
| nexttype |
| nextval |
| nice_chunk |
| nice_chunk_size |
| No |
| no_aelem |
| no_dir_func |
| no_func |
| no_mem |
| nomemok |
| no_modify |
| no_myglob |
| no_security |
| no_sock_func |
| no_symref |
| no_usym |
| no_wrongref |
| nrs |
| oldbufptr |
| oldname |
| oldoldbufptr |
| op |
| opargs |
| op_desc |
| op_mask |
| op_name |
| op_seq |
| origalen |
| origargc |
| origargv |
| origenviron |
| origfilename |
| osname |
| padix |
| padix_floor |
| pad_reset_pending |
| patchlevel |
| patleave |
| perldb |
| perl_destruct_level |
| pidstatus |
| ppaddr |
| preambleav |
| preambled |
| preprocess |
| profiledata |
| regdummy |
| regendp |
| regeol |
| reginput |
| regkind |
| reglastparen |
| regsize |
| regstartp |
| restartop |
| rs |
| rsfp |
| rsfp_filters |
| runops |
| savestack |
| savestack_ix |
| savestack_max |
| sawampersand |
| scopestack |
| scopestack_ix |
| scopestack_max |
| screamfirst |
| screamnext |
| secondgv |
| signals |
| sig_name |
| sig_num |
| simple |
| sortcop |
| sortstash |
| splitstr |
| stack_base |
| stack_max |
| stack_sp |
| statbuf |
| statcache |
| statgv |
| statname |
| statusvalue |
| stdingv |
| sub_generation |
| subline |
| subname |
| Sv |
| sv_arenaroot |
| sv_count |
| sv_no |
| sv_objcount |
| sv_root |
| sv_undef |
| sv_yes |
| tainted |
| tainting |
| timesbuf |
| tmps_floor |
| tmps_ix |
| tmps_max |
| tmps_stack |
| tokenbuf |
| top_env |
| toptarget |
| uid |
| unsafe |
| varies |
| vtbl_amagic |
| vtbl_amagicelem |
| vtbl_arylen |
| vtbl_bm |
| vtbl_dbline |
| vtbl_env |
| vtbl_envelem |
| vtbl_glob |
| vtbl_isa |
| vtbl_isaelem |
| vtbl_mglob |
| vtbl_pack |
| vtbl_packelem |
| vtbl_pos |
| vtbl_sig |
| vtbl_sigelem |
| vtbl_substr |
| vtbl_sv |
| vtbl_taint |
| vtbl_uvar |
| vtbl_vec |
| warnhook |
| warn_nl |
| warn_nosemi |
| warn_reserved |
| warn_uninit |
| watchaddr |
| watchok |
| Xpv |
| Yes |
| |
| * have an --env option for soak to set env variable combinations |
| |
| * only overwrite generated files if they actually changed |
| |
| * try to make parts/apicheck.pl automatically find NEED_ #defines |
| |
| * add support for my_vsnprintf? |
| |
| * try to perform some core consistency checks: |
| |
| - check if 'd' flag in embed.fnc matches with |
| supplied documentation |
| |
| - check if all public API is documented |
| |
| * check (during make regen?) if MAX_PERL in PPPort_pm.PL |
| needs to be updated |
| |
| * see if we can implement sv_catpvf() for < 5.004 |
| |
| * MULTICALL ? |
| |
| * improve apicheck (things like utf8_mg_pos_init() are |
| not currently checked) |
| |
| * more documentation, more tests |
| |
| * Resolve dependencies in Makefile.PL and remind of |
| running 'make regen' |
| |