Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / perl5 / ext / B / ramblings / runtime.porting
1 Notes on porting the perl runtime PP engine.
2 Importance: 1 = who cares?, 10 = vital
3 Difficulty: 1 = trivial, 10 = very difficult. Level assumes a
4 reasonable implementation of the SV and OP API already ported.
5
6 OP              Import  Diff    Comments
7 null            10      1
8 stub            10      1
9 scalar          10      1
10 pushmark        10      1       PUSHMARK
11 wantarray       7       3       cxstack, dopoptosub
12 const           10      1       
13 gvsv            10      1       save_scalar
14 gv              10      1       
15 gelem           3       3       
16 padsv           10      2       SAVECLEARSV, provide_ref
17 padav           10      2
18 padhv           10      2
19 padany          1       1
20 pushre          7       3       pushes an op. Blech.
21 rv2gv           6       5
22 rv2sv           10      4
23 av2arylen       7       3       sv_magic        
24 rv2cv           8       5       sv_2cv
25 anoncode        7       6       cv_clone
26 prototype       4       4       sv_2cv
27 refgen          8       3
28 srefgen         8       2
29 ref             8       3
30 bless           7       3
31 backtick        5       4
32 glob            5       2       do_readline
33 readline        8       2       do_readline     
34 rcatline        8       2
35 regcmaybe       8       1
36 regcomp         8       9       pregcomp
37 match           8       10
38 subst           8       10
39 substcont       8       7
40 trans           7       4       do_trans
41 sassign         10      3       mg_find, SvSETMAGIC
42 aassign         10      5       
43 chop            8       3       do_chop
44 schop           8       3       do_chop
45 chomp           8       3       do_chomp
46 schomp          8       3       do_chomp
47 defined         10      2
48 undef           10      3
49 study           4       5
50 pos             8       3       PVLV, mg_find
51 preinc          10      2       sv_inc, SvSETMAGIC
52 i_preinc
53 predec          10      2       sv_dec, SvSETMAGIC
54 i_predec
55 postinc         10      2       sv_dec, SvSETMAGIC
56 i_postinc
57 postdec         10      2       sv_dec, SvSETMAGIC
58 i_postdec
59 pow             10      1
60 multiply        10      1
61 i_multiply      10      1
62 divide          10      2
63 i_divide        10      1
64 modulo          10      2
65 i_modulo        10      1
66 repeat          6       4
67 add             10      1
68 i_add           10      1
69 subtract        10      1
70 i_subtract      10      1
71 concat          10      2       mg_get
72 stringify       10      2       sv_setpvn
73 left_shift      10      1
74 right_shift     10      1
75 lt              10      1
76 i_lt            10      1
77 gt              10      1
78 i_gt            10      1
79 le              10      1
80 i_le            10      1
81 ge              10      1
82 i_ge            10      1
83 eq              10      1
84 i_eq            10      1
85 ne              10      1
86 i_ne            10      1
87 ncmp            10      1
88 i_ncmp          10      1
89 slt             10      2
90 sgt             10      2
91 sle             10      2
92 sge             10      2
93 seq             10      2       sv_eq
94 sne             10      2
95 scmp            10      2
96 bit_and         10      2
97 bit_xor         10      2
98 bit_or          10      2
99 negate          10      3
100 i_negate        10      1
101 not             10      1
102 complement      10      3
103 atan2           6       1
104 sin             6       1
105 cos             6       1
106 rand            5       2
107 srand           5       2
108 exp             6       1
109 log             6       2
110 sqrt            6       2
111 int             10      2
112 hex             9       2
113 oct             9       2
114 abs             10      1
115 length          10      1
116 substr          10      4       PVLV
117 vec             5       4
118 index           9       3
119 rindex          9       3
120 sprintf         9       4       do_sprintf
121 formline        6       7
122 ord             6       2       
123 chr             6       2
124 crypt           3       2
125 ucfirst         6       2
126 lcfirst         6       2
127 uc              6       2
128 lc              6       2
129 quotemeta       6       3
130 rv2av           10      3       save_svref, mg_get, save_ary
131 aelemfast       10      2       av_fetch
132 aelem           10      3
133 aslice          9       4
134 each            10      3       hv_iternext
135 values          10      3       do_kv
136 keys            10      3       do_kv
137 delete          10      3
138 exists          10      3
139 rv2hv           10      3       save_svref, mg_get, save_ary, do_kv
140 helem           10      3       save_svref, provide_ref
141 hslice          9       4
142 unpack          9       6       lengthy
143 pack            9       6       lengthy
144 split           9       9
145 join            10      4       do_join
146 list            10      2
147 lslice          9       4
148 anonlist        10      2
149 anonhash        10      3
150 splice          9       6
151 push            10      2
152 pop             10      2
153 shift           10      2
154 unshift         10      2
155 sort            6       7
156 reverse         9       4
157 grepstart       6       5       modifies flow of control
158 grepwhile       6       5       modifies flow of control
159 mapstart        1       1
160 mapwhile        6       5       modifies flow of control
161 range           7       3       modifies flow of control
162 flip            7       4       modifies flow of control
163 flop            7       4       modifies flow of control
164 and             10      3       modifies flow of control
165 or              10      3       modifies flow of control
166 xor
167 cond_expr       10      3       modifies flow of control
168 andassign       7       3       modifies flow of control
169 orassign        7       3       modifies flow of control
170 method          8       5
171 entersub        10      7
172 leavesub        10      5
173 caller          2       8
174 warn            9       3
175 die             9       3
176 reset           2       2
177 lineseq         1       1
178 nextstate       10      1       Update stack_sp from cxstack. FREETMPS.
179 dbstate         3       7               
180 unstack
181 enter           10      3       cxstack, ENTER, SAVETMPS, PUSHBLOCK
182 leave           10      3       cxstack, SAVETMPS, LEAVE, POPBLOCK
183 scope           1       1
184 enteriter       9       4       cxstack
185 iter            9       3       cxstack
186 enterloop       10      4
187 leaveloop       10      4
188 return          10      5
189 last            9       6
190 next            9       6
191 redo            9       6
192 dump            1       9       pp_goto
193 goto            6       9
194 exit            9       2       my_exit
195 open            9       5       do_open
196 close           9       3       do_close
197 pipe_op         7       4
198 fileno          9       2
199 umask           4       2
200 binmode         4       2
201 tie             5       5       pp_entersub
202 untie           5       2       sv_unmagic
203 tied            5       2
204 dbmopen         4       5
205 dbmclose        4       2
206 sselect         4       4
207 select          7       3
208 getc            7       2
209 read            8       2       pp_sysread
210 enterwrite      4       4       doform
211 leavewrite      4       5
212 prtf            4       4       do_sprintf
213 print           8       6
214 sysopen         8       2
215 sysread         8       4
216 syswrite        8       4       pp_send
217 send            8       4
218 recv            8       4       pp_sysread
219 eof             9       2
220 tell            9       3
221 seek            9       2
222 truncate        8       3
223 fcntl           8       4       pp_ioctl
224 ioctl           8       4
225 flock           8       2
226 socket          5       3
227 sockpair        5       3
228 bind            5       3
229 connect         5       3
230 listen          5       3
231 accept          5       3
232 shutdown        5       2
233 gsockopt        5       3       pp_ssockopt
234 ssockopt        5       3
235 getsockname     5       3       pp_getpeername
236 getpeername     5       3
237 lstat           5       4       pp_stat
238 stat            5       4       lengthy
239 ftrread         5       2       cando
240 ftrwrite        5       2       cando
241 ftrexec         5       2       cando
242 fteread         5       2       cando
243 ftewrite        5       2       cando
244 fteexec         5       2       cando
245 ftis            5       2       cando
246 fteowned        5       2       cando
247 ftrowned        5       2       cando
248 ftzero          5       2       cando
249 ftsize          5       2       cando
250 ftmtime         5       2       cando
251 ftatime         5       2       cando
252 ftctime         5       2       cando
253 ftsock          5       2       cando
254 ftchr           5       2       cando
255 ftblk           5       2       cando
256 ftfile          5       2       cando
257 ftdir           5       2       cando
258 ftpipe          5       2       cando
259 ftlink          5       2       cando
260 ftsuid          5       2       cando
261 ftsgid          5       2       cando
262 ftsvtx          5       2       cando
263 fttty           5       2       cando
264 fttext          5       4
265 ftbinary        5       4       fttext
266 chdir
267 chown
268 chroot
269 unlink
270 chmod
271 utime
272 rename
273 link
274 symlink
275 readlink
276 mkdir
277 rmdir
278 open_dir
279 readdir
280 telldir
281 seekdir
282 rewinddir
283 closedir
284 fork
285 wait
286 waitpid
287 system
288 exec
289 kill
290 getppid
291 getpgrp
292 setpgrp
293 getpriority
294 setpriority
295 time
296 tms
297 localtime
298 gmtime
299 alarm
300 sleep
301 shmget
302 shmctl
303 shmread
304 shmwrite
305 msgget
306 msgctl
307 msgsnd
308 msgrcv
309 semget
310 semctl
311 semop
312 require         6       9       doeval
313 dofile          6       9       doeval
314 entereval       6       9       doeval
315 leaveeval       6       5
316 entertry        7       4       modifies flow of control
317 leavetry        7       3
318 ghbyname
319 ghbyaddr
320 ghostent
321 gnbyname
322 gnbyaddr
323 gnetent
324 gpbyname
325 gpbynumber
326 gprotoent
327 gsbyname
328 gsbyport
329 gservent
330 shostent
331 snetent
332 sprotoent
333 sservent
334 ehostent
335 enetent
336 eprotoent
337 eservent
338 gpwnam
339 gpwuid
340 gpwent
341 spwent
342 epwent
343 ggrnam
344 ggrgid
345 ggrent
346 sgrent
347 egrent
348 getlogin
349 syscall
350