Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / O.3
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 "O 3"
132.TH O 3 "2002-06-01" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134O \- Generic interface to Perl Compiler backends
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& perl -MO=[-q,]Backend[,OPTIONS] foo.pl
139.Ve
140.SH "DESCRIPTION"
141.IX Header "DESCRIPTION"
142This is the module that is used as a frontend to the Perl Compiler.
143.PP
144If you pass the \f(CW\*(C`\-q\*(C'\fR option to the module, then the \s-1STDOUT\s0
145filehandle will be redirected into the variable \f(CW$O::BEGIN_output\fR
146during compilation. This has the effect that any output printed
147to \s-1STDOUT\s0 by \s-1BEGIN\s0 blocks or use'd modules will be stored in this
148variable rather than printed. It's useful with those backends which
149produce output themselves (\f(CW\*(C`Deparse\*(C'\fR, \f(CW\*(C`Concise\*(C'\fR etc), so that
150their output is not confused with that generated by the code
151being compiled.
152.PP
153The \f(CW\*(C`\-qq\*(C'\fR option behaves like \f(CW\*(C`\-q\*(C'\fR, except that it also closes
154\&\s-1STDERR\s0 after deparsing has finished. This suppresses the \*(L"Syntax \s-1OK\s0\*(R"
155message normally produced by perl.
156.SH "CONVENTIONS"
157.IX Header "CONVENTIONS"
158Most compiler backends use the following conventions: \s-1OPTIONS\s0
159consists of a comma-separated list of words (no white\-space).
160The \f(CW\*(C`\-v\*(C'\fR option usually puts the backend into verbose mode.
161The \f(CW\*(C`\-ofile\*(C'\fR option generates output to \fBfile\fR instead of
162stdout. The \f(CW\*(C`\-D\*(C'\fR option followed by various letters turns on
163various internal debugging flags. See the documentation for the
164desired backend (named \f(CW\*(C`B::Backend\*(C'\fR for the example above) to
165find out about that backend.
166.SH "IMPLEMENTATION"
167.IX Header "IMPLEMENTATION"
168This section is only necessary for those who want to write a
169compiler backend module that can be used via this module.
170.PP
171The command-line mentioned in the \s-1SYNOPSIS\s0 section corresponds to
172the Perl code
173.PP
174.Vb 1
175\& use O ("Backend", OPTIONS);
176.Ve
177.PP
178The \f(CW\*(C`import\*(C'\fR function which that calls loads in the appropriate
179\&\f(CW\*(C`B::Backend\*(C'\fR module and calls the \f(CW\*(C`compile\*(C'\fR function in that
180package, passing it \s-1OPTIONS\s0. That function is expected to return
181a sub reference which we'll call \s-1CALLBACK\s0. Next, the \*(L"compile\-only\*(R"
182flag is switched on (equivalent to the command-line option \f(CW\*(C`\-c\*(C'\fR)
183and a \s-1CHECK\s0 block is registered which calls \s-1CALLBACK\s0. Thus the main
184Perl program mentioned on the command-line is read in, parsed and
185compiled into internal syntax tree form. Since the \f(CW\*(C`\-c\*(C'\fR flag is
186set, the program does not start running (excepting \s-1BEGIN\s0 blocks of
187course) but the \s-1CALLBACK\s0 function registered by the compiler
188backend is called.
189.PP
190In summary, a compiler backend module should be called \*(L"B::Foo\*(R"
191for some foo and live in the appropriate directory for that name.
192It should define a function called \f(CW\*(C`compile\*(C'\fR. When the user types
193.PP
194.Vb 1
195\& perl -MO=Foo,OPTIONS foo.pl
196.Ve
197.PP
198that function is called and is passed those \s-1OPTIONS\s0 (split on
199commas). It should return a sub ref to the main compilation function.
200After the user's program is loaded and parsed, that returned sub ref
201is invoked which can then go ahead and do the compilation, usually by
202making use of the \f(CW\*(C`B\*(C'\fR module's functionality.
203.SH "BUGS"
204.IX Header "BUGS"
205The \f(CW\*(C`\-q\*(C'\fR and \f(CW\*(C`\-qq\*(C'\fR options don't work correctly if perl isn't
206compiled with PerlIO support : \s-1STDOUT\s0 will be closed instead of being
207redirected to \f(CW$O::BEGIN_output\fR.
208.SH "AUTHOR"
209.IX Header "AUTHOR"
210Malcolm Beattie, \f(CW\*(C`mbeattie@sable.ox.ac.uk\*(C'\fR