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
+
+* implement snprintf with newSVpvf for >= 5.004, which is safer?
+
+* 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