Blame TODO

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