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