📄 runtime.porting
字号:
Notes on porting the perl runtime PP engine.Importance: 1 = who cares?, 10 = vitalDifficulty: 1 = trivial, 10 = very difficult. Level assumes areasonable implementation of the SV and OP API already ported.OP Import Diff Commentsnull 10 1stub 10 1scalar 10 1pushmark 10 1 PUSHMARKwantarray 7 3 cxstack, dopoptosubconst 10 1 gvsv 10 1 save_scalargv 10 1 gelem 3 3 padsv 10 2 SAVECLEARSV, provide_refpadav 10 2padhv 10 2padany 1 1pushre 7 3 pushes an op. Blech.rv2gv 6 5rv2sv 10 4av2arylen 7 3 sv_magic rv2cv 8 5 sv_2cvanoncode 7 6 cv_cloneprototype 4 4 sv_2cvrefgen 8 3srefgen 8 2ref 8 3bless 7 3backtick 5 4glob 5 2 do_readlinereadline 8 2 do_readline rcatline 8 2regcmaybe 8 1regcreset 8 1regcomp 8 9 pregcompmatch 8 10qr 8 1subst 8 10substcont 8 7trans 7 4 do_transsassign 10 3 mg_find, SvSETMAGICaassign 10 5 chop 8 3 do_chopschop 8 3 do_chopchomp 8 3 do_chompschomp 8 3 do_chompdefined 10 2undef 10 3study 4 5pos 8 3 PVLV, mg_findpreinc 10 2 sv_inc, SvSETMAGICi_preincpredec 10 2 sv_dec, SvSETMAGICi_predecpostinc 10 2 sv_dec, SvSETMAGICi_postincpostdec 10 2 sv_dec, SvSETMAGICi_postdecpow 10 1multiply 10 1i_multiply 10 1divide 10 2i_divide 10 1modulo 10 2i_modulo 10 1repeat 6 4add 10 1i_add 10 1subtract 10 1i_subtract 10 1concat 10 2 mg_getstringify 10 2 sv_setpvnleft_shift 10 1right_shift 10 1lt 10 1i_lt 10 1gt 10 1i_gt 10 1le 10 1i_le 10 1ge 10 1i_ge 10 1eq 10 1i_eq 10 1ne 10 1i_ne 10 1ncmp 10 1i_ncmp 10 1slt 10 2sgt 10 2sle 10 2sge 10 2seq 10 2 sv_eqsne 10 2scmp 10 2bit_and 10 2bit_xor 10 2bit_or 10 2negate 10 3i_negate 10 1not 10 1complement 10 3atan2 6 1sin 6 1cos 6 1rand 5 2srand 5 2exp 6 1log 6 2sqrt 6 2int 10 2hex 9 2oct 9 2abs 10 1length 10 1substr 10 4 PVLVvec 5 4index 9 3rindex 9 3sprintf 9 4 do_sprintfformline 6 7ord 6 2 chr 6 2crypt 3 2ucfirst 6 2lcfirst 6 2uc 6 2lc 6 2quotemeta 6 3rv2av 10 3 save_svref, mg_get, save_aryaelemfast 10 2 av_fetchaelem 10 3aslice 9 4each 10 3 hv_iternextvalues 10 3 do_kvkeys 10 3 do_kvdelete 10 3exists 10 3rv2hv 10 3 save_svref, mg_get, save_ary, do_kvhelem 10 3 save_svref, provide_refhslice 9 4unpack 9 6 lengthypack 9 6 lengthysplit 9 9join 10 4 do_joinlist 10 2lslice 9 4anonlist 10 2anonhash 10 3splice 9 6push 10 2pop 10 2shift 10 2unshift 10 2sort 6 7reverse 9 4grepstart 6 5 modifies flow of controlgrepwhile 6 5 modifies flow of controlmapstart 1 1mapwhile 6 5 modifies flow of controlrange 7 3 modifies flow of controlflip 7 4 modifies flow of controlflop 7 4 modifies flow of controland 10 3 modifies flow of controlor 10 3 modifies flow of controlxorcond_expr 10 3 modifies flow of controlandassign 7 3 modifies flow of controlorassign 7 3 modifies flow of controlmethod 8 5entersub 10 7leavesub 10 5leavesublvcaller 2 8warn 9 3die 9 3reset 2 2lineseq 1 1nextstate 10 1 Update stack_sp from cxstack. FREETMPS.dbstate 3 7 unstackenter 10 3 cxstack, ENTER, SAVETMPS, PUSHBLOCKleave 10 3 cxstack, SAVETMPS, LEAVE, POPBLOCKscope 1 1enteriter 9 4 cxstackiter 9 3 cxstackenterloop 10 4leaveloop 10 4return 10 5last 9 6next 9 6redo 9 6dump 1 9 pp_gotogoto 6 9exit 9 2 my_exitopen 9 5 do_openclose 9 3 do_closepipe_op 7 4fileno 9 2umask 4 2binmode 4 2tie 5 5 pp_entersubuntie 5 2 sv_unmagictied 5 2dbmopen 4 5dbmclose 4 2sselect 4 4select 7 3getc 7 2read 8 2 pp_sysreadenterwrite 4 4 doformleavewrite 4 5prtf 4 4 do_sprintfprint 8 6sysopen 8 2sysseek 8 2sysread 8 4syswrite 8 4 pp_sendsend 8 4recv 8 4 pp_sysreadeof 9 2tell 9 3seek 9 2truncate 8 3fcntl 8 4 pp_ioctlioctl 8 4flock 8 2socket 5 3sockpair 5 3bind 5 3connect 5 3listen 5 3accept 5 3shutdown 5 2gsockopt 5 3 pp_ssockoptssockopt 5 3getsockname 5 3 pp_getpeernamegetpeername 5 3lstat 5 4 pp_statstat 5 4 lengthyftrread 5 2 candoftrwrite 5 2 candoftrexec 5 2 candofteread 5 2 candoftewrite 5 2 candofteexec 5 2 candoftis 5 2 candofteowned 5 2 candoftrowned 5 2 candoftzero 5 2 candoftsize 5 2 candoftmtime 5 2 candoftatime 5 2 candoftctime 5 2 candoftsock 5 2 candoftchr 5 2 candoftblk 5 2 candoftfile 5 2 candoftdir 5 2 candoftpipe 5 2 candoftlink 5 2 candoftsuid 5 2 candoftsgid 5 2 candoftsvtx 5 2 candofttty 5 2 candofttext 5 4ftbinary 5 4 fttextchdirchownchrootunlinkchmodutimerenamelinksymlinkreadlinkmkdirrmdiropen_dirreaddirtelldirseekdirrewinddirclosedirforkwaitwaitpidsystemexeckillgetppidgetpgrpsetpgrpgetprioritysetprioritytimetmslocaltimegmtimealarmsleepshmgetshmctlshmreadshmwritemsggetmsgctlmsgsndmsgrcvsemgetsemctlsemoprequire 6 9 doevaldofile 6 9 doevalentereval 6 9 doevalleaveeval 6 5entertry 7 4 modifies flow of controlleavetry 7 3ghbynameghbyaddrghostentgnbynamegnbyaddrgnetentgpbynamegpbynumbergprotoentgsbynamegsbyportgserventshostentsnetentsprotoentsserventehostentenetenteprotoenteserventgpwnamgpwuidgpwentspwentepwentggrnamggrgidggrentsgrentegrentgetloginsyscalllock 6 1threadsv 6 2 unused if not USE_THREADSsetstate 1 1 currently unused anywheremethod_named 10 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -