Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man1 / perlintern.1
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "PERLINTERN 1"
132.TH PERLINTERN 1 "2002-06-08" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134perlintern \- autogenerated documentation of purely \fBinternal\fR
135 Perl functions
136.SH "DESCRIPTION"
137.IX Header "DESCRIPTION"
138This file is the autogenerated documentation of functions in the
139Perl interpreter that are documented using Perl's internal documentation
140format but are not marked as part of the Perl \s-1API\s0. In other words,
141\&\fBthey are not for use in extensions\fR!
142.SH "Global Variables"
143.IX Header "Global Variables"
144.IP "PL_DBsingle" 8
145.IX Item "PL_DBsingle"
146When Perl is run in debugging mode, with the \fB\-d\fR switch, this \s-1SV\s0 is a
147boolean which indicates whether subs are being single\-stepped.
148Single-stepping is automatically turned on after every step. This is the C
149variable which corresponds to Perl's \f(CW$DB::single\fR variable. See
150\&\f(CW\*(C`PL_DBsub\*(C'\fR.
151.Sp
152.Vb 1
153\& SV * PL_DBsingle
154.Ve
155.IP "PL_DBsub" 8
156.IX Item "PL_DBsub"
157When Perl is run in debugging mode, with the \fB\-d\fR switch, this \s-1GV\s0 contains
158the \s-1SV\s0 which holds the name of the sub being debugged. This is the C
159variable which corresponds to Perl's \f(CW$DB::sub\fR variable. See
160\&\f(CW\*(C`PL_DBsingle\*(C'\fR.
161.Sp
162.Vb 1
163\& GV * PL_DBsub
164.Ve
165.IP "PL_DBtrace" 8
166.IX Item "PL_DBtrace"
167Trace variable used when Perl is run in debugging mode, with the \fB\-d\fR
168switch. This is the C variable which corresponds to Perl's \f(CW$DB::trace\fR
169variable. See \f(CW\*(C`PL_DBsingle\*(C'\fR.
170.Sp
171.Vb 1
172\& SV * PL_DBtrace
173.Ve
174.IP "PL_dowarn" 8
175.IX Item "PL_dowarn"
176The C variable which corresponds to Perl's $^W warning variable.
177.Sp
178.Vb 1
179\& bool PL_dowarn
180.Ve
181.IP "PL_last_in_gv" 8
182.IX Item "PL_last_in_gv"
183The \s-1GV\s0 which was last used for a filehandle input operation. (\f(CW\*(C`<FH>\*(C'\fR)
184.Sp
185.Vb 1
186\& GV* PL_last_in_gv
187.Ve
188.IP "PL_ofs_sv" 8
189.IX Item "PL_ofs_sv"
190The output field separator \- \f(CW$,\fR in Perl space.
191.Sp
192.Vb 1
193\& SV* PL_ofs_sv
194.Ve
195.IP "PL_rs" 8
196.IX Item "PL_rs"
197The input record separator \- \f(CW$/\fR in Perl space.
198.Sp
199.Vb 1
200\& SV* PL_rs
201.Ve
202.SH "GV Functions"
203.IX Header "GV Functions"
204.IP "is_gv_magical" 8
205.IX Item "is_gv_magical"
206Returns \f(CW\*(C`TRUE\*(C'\fR if given the name of a magical \s-1GV\s0.
207.Sp
208Currently only useful internally when determining if a \s-1GV\s0 should be
209created even in rvalue contexts.
210.Sp
211\&\f(CW\*(C`flags\*(C'\fR is not used at present but available for future extension to
212allow selecting particular classes of magical variable.
213.Sp
214.Vb 1
215\& bool is_gv_magical(char *name, STRLEN len, U32 flags)
216.Ve
217.SH "IO Functions"
218.IX Header "IO Functions"
219.IP "start_glob" 8
220.IX Item "start_glob"
221Function called by \f(CW\*(C`do_readline\*(C'\fR to spawn a glob (or do the glob inside
222perl on \s-1VMS\s0). This code used to be inline, but now perl uses \f(CW\*(C`File::Glob\*(C'\fR
223this glob starter is only used by miniperl during the build process.
224Moving it away shrinks pp_hot.c; shrinking pp_hot.c helps speed perl up.
225.Sp
226.Vb 1
227\& PerlIO* start_glob(SV* pattern, IO *io)
228.Ve
229.SH "Pad Data Structures"
230.IX Header "Pad Data Structures"
231.IP "CvPADLIST" 8
232.IX Item "CvPADLIST"
233\&\s-1CV\s0's can have CvPADLIST(cv) set to point to an \s-1AV\s0.
234.Sp
235For these purposes \*(L"forms\*(R" are a kind-of \s-1CV\s0, eval"\*(L"s are too (except they're
236not callable at will and are always thrown away after the eval\*(R"" is done
237executing).
238.Sp
239XSUBs don't have CvPADLIST set \- dXSTARG fetches values from PL_curpad,
240but that is really the callers pad (a slot of which is allocated by
241every entersub).
242.Sp
243The CvPADLIST \s-1AV\s0 has does not have AvREAL set, so \s-1REFCNT\s0 of component items
244is managed \*(L"manual\*(R" (mostly in op.c) rather than normal av.c rules.
245The items in the \s-1AV\s0 are not SVs as for a normal \s-1AV\s0, but other AVs:
246.Sp
2470'th Entry of the CvPADLIST is an \s-1AV\s0 which represents the \*(L"names\*(R" or rather
248the \*(L"static type information\*(R" for lexicals.
249.Sp
250The CvDEPTH'th entry of CvPADLIST \s-1AV\s0 is an \s-1AV\s0 which is the stack frame at that
251depth of recursion into the \s-1CV\s0.
252The 0'th slot of a frame \s-1AV\s0 is an \s-1AV\s0 which is \f(CW@_\fR.
253other entries are storage for variables and op targets.
254.Sp
255During compilation:
256\&\f(CW\*(C`PL_comppad_name\*(C'\fR is set the the the names \s-1AV\s0.
257\&\f(CW\*(C`PL_comppad\*(C'\fR is set the the frame \s-1AV\s0 for the frame CvDEPTH == 1.
258\&\f(CW\*(C`PL_curpad\*(C'\fR is set the body of the frame \s-1AV\s0 (i.e. AvARRAY(PL_comppad)).
259.Sp
260Itterating over the names \s-1AV\s0 itterates over all possible pad
261items. Pad slots that are SVs_PADTMP (targets/GVs/constants) end up having
262&PL_sv_undef \*(L"names\*(R" (see \fIpad_alloc()\fR).
263.Sp
264Only my/our variable (SVs_PADMY/SVs_PADOUR) slots get valid names.
265The rest are op targets/GVs/constants which are statically allocated
266or resolved at compile time. These don't have names by which they
267can be looked up from Perl code at run time through eval"\*(L" like
268my/our variables can be. Since they can't be looked up by \*(R"name"
269but only by their index allocated at compile time (which is usually
270in PL_op\->op_targ), wasting a name \s-1SV\s0 for them doesn't make sense.
271.Sp
272The SVs in the names \s-1AV\s0 have their \s-1PV\s0 being the name of the variable.
273\&\s-1NV+1\s0..IV inclusive is a range of cop_seq numbers for which the name is valid.
274For typed lexicals name \s-1SV\s0 is SVt_PVMG and SvSTASH points at the type.
275.Sp
276If SvFAKE is set on the name \s-1SV\s0 then slot in the frame AVs are
277a \s-1REFCNT\s0'ed references to a lexical from \*(L"outside\*(R".
278.Sp
279If the 'name' is '&' the the corresponding entry in frame \s-1AV\s0
280is a \s-1CV\s0 representing a possible closure.
281(SvFAKE and name of '&' is not a meaningful combination currently but could
282become so if \f(CW\*(C`my sub foo {}\*(C'\fR is implemented.)
283.Sp
284.Vb 1
285\& AV * CvPADLIST(CV *cv)
286.Ve
287.SH "Stack Manipulation Macros"
288.IX Header "Stack Manipulation Macros"
289.IP "djSP" 8
290.IX Item "djSP"
291Declare Just \f(CW\*(C`SP\*(C'\fR. This is actually identical to \f(CW\*(C`dSP\*(C'\fR, and declares
292a local copy of perl's stack pointer, available via the \f(CW\*(C`SP\*(C'\fR macro.
293See \f(CW\*(C`SP\*(C'\fR. (Available for backward source code compatibility with the
294old (Perl 5.005) thread model.)
295.Sp
296.Vb 1
297\& djSP;
298.Ve
299.IP "\s-1LVRET\s0" 8
300.IX Item "LVRET"
301True if this op will be the return value of an lvalue subroutine
302.SH "SV Manipulation Functions"
303.IX Header "SV Manipulation Functions"
304.IP "report_uninit" 8
305.IX Item "report_uninit"
306Print appropriate \*(L"Use of uninitialized variable\*(R" warning
307.Sp
308.Vb 1
309\& void report_uninit()
310.Ve
311.IP "sv_add_arena" 8
312.IX Item "sv_add_arena"
313Given a chunk of memory, link it to the head of the list of arenas,
314and split it into a list of free SVs.
315.Sp
316.Vb 1
317\& void sv_add_arena(char* ptr, U32 size, U32 flags)
318.Ve
319.IP "sv_clean_all" 8
320.IX Item "sv_clean_all"
321Decrement the refcnt of each remaining \s-1SV\s0, possibly triggering a
322cleanup. This function may have to be called multiple times to free
323SVs which are in complex self-referential hierarchies.
324.Sp
325.Vb 1
326\& I32 sv_clean_all()
327.Ve
328.IP "sv_clean_objs" 8
329.IX Item "sv_clean_objs"
330Attempt to destroy all objects not yet freed
331.Sp
332.Vb 1
333\& void sv_clean_objs()
334.Ve
335.IP "sv_free_arenas" 8
336.IX Item "sv_free_arenas"
337Deallocate the memory used by all arenas. Note that all the individual \s-1SV\s0
338heads and bodies within the arenas must already have been freed.
339.Sp
340.Vb 1
341\& void sv_free_arenas()
342.Ve
343.SH "AUTHORS"
344.IX Header "AUTHORS"
345The autodocumentation system was originally added to the Perl core by
346Benjamin Stuhl. Documentation is by whoever was kind enough to
347document their functions.
348.SH "SEE ALSO"
349.IX Header "SEE ALSO"
350\&\fIperlguts\fR\|(1), \fIperlapi\fR\|(1)