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