xref: /openbsd/gnu/usr.bin/perl/dist/Devel-PPPort/TODO (revision d89ec533)
1TODO:
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    Yes
316
317* have an --env option for soak to set env variable combinations
318
319* only overwrite generated files if they actually changed
320
321* try to make parts/apicheck.pl automatically find NEED_ #defines
322
323* add support for my_vsnprintf?
324
325* try to perform some core consistency checks:
326
327  - check if 'd' flag in embed.fnc matches with
328    supplied documentation
329
330  - check if all public API is documented
331
332* check (during make regen?) if MAX_PERL in PPPort_pm.PL
333  needs to be updated
334
335* see if we can implement sv_catpvf() for < 5.004
336
337* MULTICALL ?
338
339* improve apicheck (things like utf8_mg_pos_init() are
340  not currently checked)
341
342* more documentation, more tests
343
344* Resolve dependencies in Makefile.PL and remind of
345  running 'make regen'
346