1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
|
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'
|