@@ -122,67 +122,80 @@ scalacOptions ++= Seq(
122
122
### Compilation Phases
123
123
124
124
<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 >
130
131
131
132
<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 >
133
149
134
- <dt >analyze </dt >
135
- <dd >name and type analysis </dd >
150
+ <dt >refchecks </dt >
151
+ <dd >reference/override checking, translate nested objects </dd >
136
152
137
- <dt >refcheck </dt >
138
- <dd >reference checking </dd >
153
+ <dt >patmat </dt >
154
+ <dd >translate match expressions </dd >
139
155
140
156
<dt >uncurry</dt >
141
- <dd >uncurry function types and applications </dd >
157
+ <dd >uncurry, translate function values to anonymous classes </dd >
142
158
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 >
145
161
146
- <dt >typesasvalues </dt >
147
- <dd >represent types as values </dd >
162
+ <dt >tailcalls </dt >
163
+ <dd >replace tail calls by jumps </dd >
148
164
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 >
151
167
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 >
154
170
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 >
157
173
158
- <dt >tailcall </dt >
159
- <dd >add tail-calls </dd >
174
+ <dt >posterasure </dt >
175
+ <dd >clean up erased inline classes </dd >
160
176
161
- <dt >wholeprog </dt >
162
- <dd >perform whole program analysis </dd >
177
+ <dt >lambdalift </dt >
178
+ <dd >move nested functions to top level </dd >
163
179
164
- <dt >addinterfaces </dt >
165
- <dd >add one interface per class </dd >
180
+ <dt >constructors </dt >
181
+ <dd >move field definitions into constructors </dd >
166
182
167
- <dt >expandmixins </dt >
168
- <dd >expand mixins by code copying </dd >
183
+ <dt >flatten </dt >
184
+ <dd >eliminate inner classes </dd >
169
185
170
- <dt >boxing </dt >
171
- <dd >makes boxing explicit </dd >
186
+ <dt >mixin </dt >
187
+ <dd >mixin composition </dd >
172
188
173
- <dt >erasure </dt >
174
- <dd >type eraser </dd >
189
+ <dt >cleanup </dt >
190
+ <dd >platform-specific cleanups, generate reflective calls </dd >
175
191
176
- <dt >icode </dt >
177
- <dd >generate icode </dd >
192
+ <dt >delambdafy </dt >
193
+ <dd >remove lambdas </dd >
178
194
179
- <dt >codegen </dt >
180
- <dd >enable code generation </dd >
195
+ <dt >jvm </dt >
196
+ <dd >generate JVM bytecode </dd >
181
197
182
198
<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 >
187
200
</dl >
188
201
0 commit comments