Commit | Line | Data |
a8a597b2 |
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 | |