Skip to content

Commit 16fad15

Browse files
committed
update list of compiler phases
Generated with GNU sed: ``` scalac -Vphases | tail -n+3 | sed -rn 's|^\s*([a-z]+)\s+[0-9]+\s+([a-z@].+)$|<dt>\1</dt>\n<dd>\2</dd>\n|p' ```
1 parent 20651f5 commit 16fad15

File tree

1 file changed

+50
-41
lines changed

1 file changed

+50
-41
lines changed

_overviews/compiler-options/index.md

+50-41
Original file line numberDiff line numberDiff line change
@@ -122,67 +122,76 @@ scalacOptions ++= Seq(
122122
### Compilation Phases
123123

124124
<dl class="definition-list">
125-
<dt>initial</dt>
126-
<dd>initializing compiler</dd>
127-
128-
<dt>parse</dt>
129-
<dd>parse source files</dd>
125+
<dt>parser</dt>
126+
<dd>parse source into ASTs, perform simple desugaring</dd>
130127

131128
<dt>namer</dt>
132-
<dd>create symbols</dd>
129+
<dd>resolve names, attach symbols to named trees</dd>
130+
131+
<dt>packageobjects</dt>
132+
<dd>load package objects</dd>
133+
134+
<dt>typer</dt>
135+
<dd>the meat and potatoes: type the trees</dd>
136+
137+
<dt>superaccessors</dt>
138+
<dd>add super accessors in traits and nested classes</dd>
139+
140+
<dt>extmethods</dt>
141+
<dd>add extension methods for inline classes</dd>
142+
143+
<dt>pickler</dt>
144+
<dd>serialize symbol tables</dd>
133145

134-
<dt>analyze</dt>
135-
<dd>name and type analysis</dd>
146+
<dt>refchecks</dt>
147+
<dd>reference/override checking, translate nested objects</dd>
136148

137-
<dt>refcheck</dt>
138-
<dd>reference checking</dd>
149+
<dt>patmat</dt>
150+
<dd>translate match expressions</dd>
139151

140152
<dt>uncurry</dt>
141-
<dd>uncurry function types and applications</dd>
153+
<dd>uncurry, translate function values to anonymous classes</dd>
142154

143-
<dt>lambdalift</dt>
144-
<dd>lambda lifter</dd>
155+
<dt>fields</dt>
156+
<dd>synthesize accessors and fields, add bitmaps for lazy vals</dd>
145157

146-
<dt>typesasvalues</dt>
147-
<dd>represent types as values</dd>
158+
<dt>tailcalls</dt>
159+
<dd>replace tail calls by jumps</dd>
148160

149-
<dt>addaccessors</dt>
150-
<dd>add accessors for constructor arguments</dd>
161+
<dt>specialize</dt>
162+
<dd>@specialized-driven class and method specialization</dd>
151163

152-
<dt>explicitouterclasses</dt>
153-
<dd>make links from inner classes to enclosing one explicit</dd>
164+
<dt>explicitouter</dt>
165+
<dd>this refs to outer pointers</dd>
154166

155-
<dt>addconstructors</dt>
156-
<dd>add explicit constructor for each class</dd>
167+
<dt>erasure</dt>
168+
<dd>erase types, add interfaces for traits</dd>
157169

158-
<dt>tailcall</dt>
159-
<dd>add tail-calls</dd>
170+
<dt>posterasure</dt>
171+
<dd>clean up erased inline classes</dd>
160172

161-
<dt>wholeprog</dt>
162-
<dd>perform whole program analysis</dd>
173+
<dt>lambdalift</dt>
174+
<dd>move nested functions to top level</dd>
163175

164-
<dt>addinterfaces</dt>
165-
<dd>add one interface per class</dd>
176+
<dt>constructors</dt>
177+
<dd>move field definitions into constructors</dd>
166178

167-
<dt>expandmixins</dt>
168-
<dd>expand mixins by code copying</dd>
179+
<dt>flatten</dt>
180+
<dd>eliminate inner classes</dd>
169181

170-
<dt>boxing</dt>
171-
<dd>makes boxing explicit</dd>
182+
<dt>mixin</dt>
183+
<dd>mixin composition</dd>
172184

173-
<dt>erasure</dt>
174-
<dd>type eraser</dd>
185+
<dt>cleanup</dt>
186+
<dd>platform-specific cleanups, generate reflective calls</dd>
175187

176-
<dt>icode</dt>
177-
<dd>generate icode</dd>
188+
<dt>delambdafy</dt>
189+
<dd>remove lambdas</dd>
178190

179-
<dt>codegen</dt>
180-
<dd>enable code generation</dd>
191+
<dt>jvm</dt>
192+
<dd>generate JVM bytecode</dd>
181193

182194
<dt>terminal</dt>
183-
<dd>compilation terminated</dd>
184-
185-
<dt>all</dt>
186-
<dd>matches all phases</dd>
195+
<dd>the last phase during a compilation run</dd>
187196
</dl>
188197

0 commit comments

Comments
 (0)