Skip to content

Commit 14051ad

Browse files
authored
Merge pull request #1791 from Jasper-M/patch-2
update list of compiler phases
2 parents 2df8764 + 2c77fff commit 14051ad

File tree

1 file changed

+54
-41
lines changed

1 file changed

+54
-41
lines changed

_overviews/compiler-options/index.md

Lines changed: 54 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -122,67 +122,80 @@ 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+
<!--
126+
Generated with GNU sed:
127+
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'
128+
-->
129+
<dt>parser</dt>
130+
<dd>parse source into ASTs, perform simple desugaring</dd>
130131

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

134-
<dt>analyze</dt>
135-
<dd>name and type analysis</dd>
150+
<dt>refchecks</dt>
151+
<dd>reference/override checking, translate nested objects</dd>
136152

137-
<dt>refcheck</dt>
138-
<dd>reference checking</dd>
153+
<dt>patmat</dt>
154+
<dd>translate match expressions</dd>
139155

140156
<dt>uncurry</dt>
141-
<dd>uncurry function types and applications</dd>
157+
<dd>uncurry, translate function values to anonymous classes</dd>
142158

143-
<dt>lambdalift</dt>
144-
<dd>lambda lifter</dd>
159+
<dt>fields</dt>
160+
<dd>synthesize accessors and fields, add bitmaps for lazy vals</dd>
145161

146-
<dt>typesasvalues</dt>
147-
<dd>represent types as values</dd>
162+
<dt>tailcalls</dt>
163+
<dd>replace tail calls by jumps</dd>
148164

149-
<dt>addaccessors</dt>
150-
<dd>add accessors for constructor arguments</dd>
165+
<dt>specialize</dt>
166+
<dd>@specialized-driven class and method specialization</dd>
151167

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

155-
<dt>addconstructors</dt>
156-
<dd>add explicit constructor for each class</dd>
171+
<dt>erasure</dt>
172+
<dd>erase types, add interfaces for traits</dd>
157173

158-
<dt>tailcall</dt>
159-
<dd>add tail-calls</dd>
174+
<dt>posterasure</dt>
175+
<dd>clean up erased inline classes</dd>
160176

161-
<dt>wholeprog</dt>
162-
<dd>perform whole program analysis</dd>
177+
<dt>lambdalift</dt>
178+
<dd>move nested functions to top level</dd>
163179

164-
<dt>addinterfaces</dt>
165-
<dd>add one interface per class</dd>
180+
<dt>constructors</dt>
181+
<dd>move field definitions into constructors</dd>
166182

167-
<dt>expandmixins</dt>
168-
<dd>expand mixins by code copying</dd>
183+
<dt>flatten</dt>
184+
<dd>eliminate inner classes</dd>
169185

170-
<dt>boxing</dt>
171-
<dd>makes boxing explicit</dd>
186+
<dt>mixin</dt>
187+
<dd>mixin composition</dd>
172188

173-
<dt>erasure</dt>
174-
<dd>type eraser</dd>
189+
<dt>cleanup</dt>
190+
<dd>platform-specific cleanups, generate reflective calls</dd>
175191

176-
<dt>icode</dt>
177-
<dd>generate icode</dd>
192+
<dt>delambdafy</dt>
193+
<dd>remove lambdas</dd>
178194

179-
<dt>codegen</dt>
180-
<dd>enable code generation</dd>
195+
<dt>jvm</dt>
196+
<dd>generate JVM bytecode</dd>
181197

182198
<dt>terminal</dt>
183-
<dd>compilation terminated</dd>
184-
185-
<dt>all</dt>
186-
<dd>matches all phases</dd>
199+
<dd>the last phase during a compilation run</dd>
187200
</dl>
188201

0 commit comments

Comments
 (0)