Skip to content

Commit 6d303fa

Browse files
authored
Merge pull request #2727 from som-snytt/issue/2615-options
Update some compiler options
2 parents d7cd448 + c7fa31e commit 6d303fa

File tree

2 files changed

+109
-114
lines changed

2 files changed

+109
-114
lines changed

_overviews/scala3-migration/options-intro.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ To do so you can refer to the [Lookup Table](options-lookup.html).
1616
> Passing an unavailable option to the Scala 3 compiler does not make it fail.
1717
> It just prints a warning and ignores the option.
1818
19-
You can also discover the new Scala 3 compiler options, that have no equivalent in Scala 2.13, in the [New Compiler Options](options-new.html) page.
19+
You can also discover the new Scala 3 compiler options, which have no equivalent in Scala 2.13, in the [New Compiler Options](options-new.html) page.
2020

21-
For scaladoc settings reference and their compatibility with Scala2 scaladoc, read [Scaladoc settings compatibility between Scala2 and Scala3](scaladoc-settings-compatibility.html) page.
21+
For Scaladoc settings reference and their compatibility with Scala2 Scaladoc, read [Scaladoc settings compatibility between Scala2 and Scala3](scaladoc-settings-compatibility.html) page.

_overviews/scala3-migration/options-lookup.md

+107-112
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,39 @@ previous-page: options-intro
77
next-page: options-new
88
---
99

10-
The compiler options are classified and ordered according to their Scala 2.13 name.
11-
Each Scala 2.13 option is associated with its status in Scala 3.
10+
This table lists the Scala 2.13 compiler options with their equivalent in Scala 3.
11+
Some options have cross-version support, such as `-Vprint`.
12+
Others have a close equivalent with a different name. A number of Scala 2 options
13+
have no equivalent in Scala 3, such as options for debugging Scala 2 macros.
14+
15+
The compiler options are shown as displayed by the help output `scalac -help`, `scalac -X`, etc.
16+
A few aliases are shown here, but most older aliases, such as `-Xprint` for `-Vprint`,
17+
or `-Ytyper-debug` for `-Vtyper`, are listed by the latest name.
18+
19+
The option groups `-V` and `-W` were introduced in Scala 2.13, for "verbose" options that
20+
request additional diagnostic output and "warnings" that request additional checks which
21+
may or may not indicate errors in code. `-Werror` elevates warnings to errors, and `-Wconf`
22+
allows precise control over warnings by either ignoring them or taking them as errors.
23+
The configuration string for `-Wconf` will likely require adjustment when migrating to Scala 3,
24+
since the configuration syntax and the error messages it matches are different.
1225

1326
| Status | Meaning |
1427
|-|-|
15-
| <i class="fa fa-check fa-lg"></i> | it is available in Scala 3 |
16-
| `<new-name>` | It has been renamed to `<new-name>` |
17-
| <i class="fa fa-times fa-lg"></i> | It is not available in 3.0.0 but it could be added later |
28+
| <i class="fa fa-check fa-lg"></i> | It is available in Scala 3. |
29+
| `<new-name>` | It has been renamed to `<new-name>`. |
30+
| <i class="fa fa-times fa-lg"></i> | It is not yet available but could be added later. |
1831

19-
> The current comparison is based on Scala 2.13.4 and 3.0.0-M3.
32+
> The current comparison is based on Scala 2.13.10 and 3.3.0.
2033
2134
## Standard Settings
2235

23-
| 2.13.x | 3.0.x |
36+
| 2.13.x | 3.3.x |
2437
|-|-|
25-
| `-Dproperty=value` | <i class="fa fa-times fa-lg"></i> |
26-
| `-J<flag>` | <i class="fa fa-times fa-lg"></i> |
38+
| `-Dproperty=value` | <i class="fa fa-check fa-lg"></i> |
39+
| `-J<flag>` | <i class="fa fa-check fa-lg"></i> |
2740
| `-P:<plugin>:<opt>` |<i class="fa fa-check fa-lg"></i>|
28-
| `-V` | <i class="fa fa-times fa-lg"></i> |
29-
| `-W` | <i class="fa fa-times fa-lg"></i> |
41+
| `-V` | <i class="fa fa-check fa-lg"></i> |
42+
| `-W` | <i class="fa fa-check fa-lg"></i> |
3043
| `-X` |<i class="fa fa-check fa-lg"></i>|
3144
| `-Y` |<i class="fa fa-check fa-lg"></i>|
3245
| `-bootclasspath` |<i class="fa fa-check fa-lg"></i>|
@@ -63,11 +76,74 @@ Each Scala 2.13 option is associated with its status in Scala 3.
6376
| `-verbose` |<i class="fa fa-check fa-lg"></i>|
6477
| `-version` |<i class="fa fa-check fa-lg"></i>|
6578

79+
## Verbose Settings
80+
81+
| 2.13.x | 3.3.x |
82+
|-|-|
83+
| `-Vbrowse:<phases>` | <i class="fa fa-times fa-lg"></i> |
84+
| `-Vclasspath` | `-Ylog-classpath` |
85+
| `-Vdebug` | `-Ydebug` |
86+
| `-Vdebug-tasty` | <i class="fa fa-times fa-lg"></i> |
87+
| `-Vdebug-type-error` | <i class="fa fa-times fa-lg"></i> |
88+
| `-Vdoc` | <i class="fa fa-times fa-lg"></i> |
89+
| `-Vfree-terms` | <i class="fa fa-times fa-lg"></i> |
90+
| `-Vfree-types` | <i class="fa fa-times fa-lg"></i> |
91+
| `-Vhot-statistics`| <i class="fa fa-times fa-lg"></i> |
92+
| `-Vide`| <i class="fa fa-times fa-lg"></i> |
93+
| `-Vimplicit-conversions`| <i class="fa fa-times fa-lg"></i> |
94+
| `-Vimplicits`| <i class="fa fa-times fa-lg"></i> |
95+
| `-Vimplicits-max-refined`| <i class="fa fa-times fa-lg"></i> |
96+
| `-Vimplicits-verbose-tree`| <i class="fa fa-times fa-lg"></i> |
97+
| `-Vinline <package/Class.method>` | <i class="fa fa-times fa-lg"></i> |
98+
| `-Vlog:<phases>` | `-Ylog:<phases>`|
99+
| `-Vmacro` | <i class="fa fa-times fa-lg"></i> |
100+
| `-Vmacro-lite` | <i class="fa fa-times fa-lg"></i> |
101+
| `-Vopt <package/Class.method>` | <i class="fa fa-times fa-lg"></i> |
102+
| `-Vpatmat` | <i class="fa fa-times fa-lg"></i> |
103+
| `-Vphases` | <i class="fa fa-check fa-lg"></i> |
104+
| `-Vpos`| <i class="fa fa-times fa-lg"></i> |
105+
| `-Vprint:<phases>` | <i class="fa fa-check fa-lg"></i> |
106+
| `-Vprint-args <file>` | <i class="fa fa-times fa-lg"></i> |
107+
| `-Vprint-pos` | `-Yprint-pos` |
108+
| `-Vprint-types` | `-Xprint-types` |
109+
| `-Vquasiquote` | <i class="fa fa-times fa-lg"></i> |
110+
| `-Vreflective-calls` | <i class="fa fa-times fa-lg"></i> |
111+
| `-Vreify` | <i class="fa fa-times fa-lg"></i> |
112+
| `-Vshow:<phases>` | <i class="fa fa-times fa-lg"></i> |
113+
| `-Vshow-class <class>` | <i class="fa fa-times fa-lg"></i> |
114+
| `-Vshow-member-pos <output style>` | <i class="fa fa-times fa-lg"></i> |
115+
| `-Vshow-object <object>` | <i class="fa fa-times fa-lg"></i> |
116+
| `-Vshow-symkinds` | <i class="fa fa-times fa-lg"></i> |
117+
| `-Vshow-symowners` | <i class="fa fa-times fa-lg"></i> |
118+
| `-Vstatistics <phases>` | <i class="fa fa-times fa-lg"></i> |
119+
| `-Vsymbols` | <i class="fa fa-times fa-lg"></i> |
120+
| `-Vtype-diffs` | <i class="fa fa-times fa-lg"></i> |
121+
| `-Vtyper` | <i class="fa fa-times fa-lg"></i> |
122+
123+
## Warning Settings
124+
125+
| 2.13.x | 3.3.x |
126+
|-|-|
127+
| `-Wconf` | <i class="fa fa-check fa-lg"></i> |
128+
| `-Wdead-code` | <i class="fa fa-times fa-lg"></i> |
129+
| `-Werror` | <i class="fa fa-check fa-lg"></i> |
130+
| `-Wextra-implicit` | <i class="fa fa-times fa-lg"></i> |
131+
| `-Wmacros:<mode>` | <i class="fa fa-times fa-lg"></i> |
132+
| `-Wnonunit-if` | <i class="fa fa-times fa-lg"></i> |
133+
| `-Wnonunit-statement` | <i class="fa fa-check fa-lg"></i> |
134+
| `-Wnumeric-widen` | <i class="fa fa-times fa-lg"></i> |
135+
| `-Woctal-literal` | <i class="fa fa-times fa-lg"></i> |
136+
| `-Wopt` | <i class="fa fa-times fa-lg"></i> |
137+
| `-Wperformance` | <i class="fa fa-times fa-lg"></i> |
138+
| `-Wself-implicit` | <i class="fa fa-times fa-lg"></i> |
139+
| `-Wunused:<warnings>` | <i class="fa fa-check fa-lg"></i> |
140+
| `-Wvalue-discard`| <i class="fa fa-check fa-lg"></i> |
141+
66142
## Advanced Settings
67143

68-
| 2.13.x | 3.0.x |
144+
| 2.13.x | 3.3.x |
69145
|-|-|
70-
| `-X` |<i class="fa fa-check fa-lg"></i>|
146+
| `-Xasync` | <i class="fa fa-times fa-lg"></i> |
71147
| `-Xcheckinit` | `-Ycheck-init` |
72148
| `-Xdev` | <i class="fa fa-times fa-lg"></i> |
73149
| `-Xdisable-assertions` | <i class="fa fa-times fa-lg"></i> |
@@ -78,30 +154,25 @@ Each Scala 2.13 option is associated with its status in Scala 3.
78154
| `-Xjline` | <i class="fa fa-times fa-lg"></i> |
79155
| `-Xlint:deprecation` | `-deprecation` |
80156
| `-Xlint:<warnings>` | <i class="fa fa-times fa-lg"></i> |
81-
| `-Xlog-implicit-conversion` | <i class="fa fa-times fa-lg"></i> |
82-
| `-Xlog-implicits` | <i class="fa fa-times fa-lg"></i> |
83-
| `-Xlog-reflective-calls` | <i class="fa fa-times fa-lg"></i> |
84157
| `-Xmacro-settings` | <i class="fa fa-times fa-lg"></i> |
85158
| `-Xmain-class` | <i class="fa fa-times fa-lg"></i> |
86159
| `-Xmaxerrs` | <i class="fa fa-times fa-lg"></i> |
87160
| `-Xmaxwarns` | <i class="fa fa-times fa-lg"></i> |
88-
| `-Xmigration` |<i class="fa fa-check fa-lg"></i>|
89-
| `-Xmixin-force-forwarders` |<i class="fa fa-check fa-lg"></i>|
161+
| `-Xmigration` |<i class="fa fa-check fa-lg"></i>|
162+
| `-Xmixin-force-forwarders` |<i class="fa fa-check fa-lg"></i>|
90163
| `-Xno-forwarders` |<i class="fa fa-check fa-lg"></i>|
91164
| `-Xno-patmat-analysis` | <i class="fa fa-times fa-lg"></i> |
165+
| `-Xnon-strict-patmat-analysis` | <i class="fa fa-times fa-lg"></i> |
92166
| `-Xnojline` | <i class="fa fa-times fa-lg"></i> |
93-
| `-Xplugin` |<i class="fa fa-check fa-lg"></i>|
94-
| `-Xplugin-disable` |<i class="fa fa-check fa-lg"></i>|
95-
| `-Xplugin-list` |<i class="fa fa-check fa-lg"></i>|
96-
| `-Xplugin-require` |<i class="fa fa-check fa-lg"></i>|
167+
| `-Xplugin` |<i class="fa fa-check fa-lg"></i>|
168+
| `-Xplugin-disable` |<i class="fa fa-check fa-lg"></i>|
169+
| `-Xplugin-list` |<i class="fa fa-check fa-lg"></i>|
170+
| `-Xplugin-require` |<i class="fa fa-check fa-lg"></i>|
97171
| `-Xpluginsdir` |<i class="fa fa-check fa-lg"></i>|
98-
| `-Xprint-args` | <i class="fa fa-times fa-lg"></i> |
99172
| `-Xprompt` |<i class="fa fa-check fa-lg"></i>|
100173
| `-Xreporter` | <i class="fa fa-times fa-lg"></i> |
101174
| `-Xresident` | <i class="fa fa-times fa-lg"></i> |
102175
| `-Xscript` | <i class="fa fa-times fa-lg"></i> |
103-
| `-Xshow-class <class>` | <i class="fa fa-times fa-lg"></i> |
104-
| `-Xshow-object <object>` | <i class="fa fa-times fa-lg"></i> |
105176
| `-Xsource` | `-source` |
106177
| `-Xsource-reader` | <i class="fa fa-times fa-lg"></i> |
107178
| `-Xverify` | `-Xverify-signatures` |
@@ -121,14 +192,10 @@ Each Scala 2.13 option is associated with its status in Scala 3.
121192
| `-Ydelambdafy` | <i class="fa fa-times fa-lg"></i> |
122193
| `-Ydump-classes` |<i class="fa fa-check fa-lg"></i>|
123194
| `-Ygen-asmp` | <i class="fa fa-times fa-lg"></i> |
124-
| `-Yhot-statistics` | <i class="fa fa-times fa-lg"></i> |
125-
| `-Yide-debug` | <i class="fa fa-times fa-lg"></i> |
126195
| `-Yimports` | <i class="fa fa-times fa-lg"></i> |
127196
| `-Yissue-debug` | <i class="fa fa-times fa-lg"></i> |
128197
| `-Yjar-compression-level` | <i class="fa fa-times fa-lg"></i> |
129198
| `-YjarFactory` | <i class="fa fa-times fa-lg"></i> |
130-
| `-Ymacro-debug-lite` | <i class="fa fa-times fa-lg"></i> |
131-
| `-Ymacro-debug-verbose` | <i class="fa fa-times fa-lg"></i> |
132199
| `-Ymacro-annotations` | <i class="fa fa-times fa-lg"></i> |
133200
| `-Ymacro-classpath` | <i class="fa fa-times fa-lg"></i> |
134201
| `-Ymacro-expand` | <i class="fa fa-times fa-lg"></i> |
@@ -139,109 +206,37 @@ Each Scala 2.13 option is associated with its status in Scala 3.
139206
| `-Yno-imports` |<i class="fa fa-check fa-lg"></i>|
140207
| `-Yno-predef` |<i class="fa fa-check fa-lg"></i>|
141208
| `-Yopt-inline-heuristics` | <i class="fa fa-times fa-lg"></i> |
142-
| `-Yopt-log-inline <package/Class.method>` | <i class="fa fa-times fa-lg"></i> |
143-
| `-Yopt-trace <package/Class.method>` | <i class="fa fa-times fa-lg"></i> |
144-
| `-Ypatmat-debug` | <i class="fa fa-times fa-lg"></i> |
145209
| `-Ypatmat-exhaust-depth` | <i class="fa fa-times fa-lg"></i> |
146-
| `-Ypos-debug` | <i class="fa fa-times fa-lg"></i> |
147210
| `-Ypresentation-any-thread` | <i class="fa fa-times fa-lg"></i> |
148211
| `-Ypresentation-debug` | <i class="fa fa-times fa-lg"></i> |
149212
| `-Ypresentation-delay` | <i class="fa fa-times fa-lg"></i> |
150213
| `-Ypresentation-locate-source-file` | <i class="fa fa-times fa-lg"></i> |
151214
| `-Ypresentation-log` | <i class="fa fa-times fa-lg"></i> |
215+
| `-Ypresentation-replay` | <i class="fa fa-times fa-lg"></i> |
152216
| `-Ypresentation-strict` | <i class="fa fa-times fa-lg"></i> |
153217
| `-Ypresentation-verbose` | <i class="fa fa-times fa-lg"></i> |
154218
| `-Yprint-trees` | <i class="fa fa-times fa-lg"></i> |
155-
| `-Yprofile-destination` |<i class="fa fa-check fa-lg"></i>|
219+
| `-Yprofile-destination` |<i class="fa fa-check fa-lg"></i>|
156220
| `-Yprofile-enabled` |<i class="fa fa-check fa-lg"></i>|
221+
| `-Yprofile-external-tool` |<i class="fa fa-check fa-lg"></i>|
222+
| `-Yprofile-run-gc` |<i class="fa fa-check fa-lg"></i>|
157223
| `-Yprofile-trace` | <i class="fa fa-times fa-lg"></i> |
158-
| `-Yquasiquote-debug` | <i class="fa fa-times fa-lg"></i> |
159224
| `-Yrangepos` | <i class="fa fa-times fa-lg"></i> |
160225
| `-Yrecursion` | <i class="fa fa-times fa-lg"></i> |
161226
| `-Yreify-copypaste` | <i class="fa fa-times fa-lg"></i> |
162-
| `-Yreify-debug` | <i class="fa fa-times fa-lg"></i> |
163227
| `-Yrepl-class-based` | <i class="fa fa-times fa-lg"></i> |
164228
| `-Yrepl-outdir` | <i class="fa fa-times fa-lg"></i> |
165229
| `-Yrepl-use-magic-imports` | <i class="fa fa-times fa-lg"></i> |
166230
| `-Yresolve-term-conflict` |<i class="fa fa-check fa-lg"></i>|
231+
| `-Yscala3-implicit-resolution` | <i class="fa fa-times fa-lg"></i> |
167232
| `-Yscriptrunner` | <i class="fa fa-times fa-lg"></i> |
168-
| `-Yskip` |<i class="fa fa-check fa-lg"></i>|
169-
| `-Yshow:<phases>` | <i class="fa fa-times fa-lg"></i> |
170-
| `-Yshow-member-pos <output style>` | <i class="fa fa-times fa-lg"></i> |
171-
| `-Yshow-symkinds` | <i class="fa fa-times fa-lg"></i> |
172-
| `-Yshow-symowners` | <i class="fa fa-times fa-lg"></i> |
173-
| `-Yshow-syms` | <i class="fa fa-times fa-lg"></i> |
174-
| `-Ystatistics <phases>` | <i class="fa fa-times fa-lg"></i> |
175-
| `-Ystop-after` |<i class="fa fa-check fa-lg"></i>|
176-
| `-Ystop-before` |<i class="fa fa-check fa-lg"></i>|
177-
| `-Ytyper-debug` | <i class="fa fa-times fa-lg"></i> |
233+
| `-Yskip` |<i class="fa fa-check fa-lg"></i>|
234+
| `-Ystop-after` |<i class="fa fa-check fa-lg"></i>|
235+
| `-Ystop-before` |<i class="fa fa-check fa-lg"></i>|
236+
| `-Ytasty-no-annotations` | <i class="fa fa-times fa-lg"></i> |
237+
| `-Ytasty-reader` | <i class="fa fa-times fa-lg"></i> |
238+
| `-Ytrack-dependencies` | <i class="fa fa-times fa-lg"></i> |
178239
| `-Yvalidate-pos` | <i class="fa fa-times fa-lg"></i> |
179-
| `-Ywarn-dead-code` | <i class="fa fa-times fa-lg"></i> |
180-
| `-Ywarn-numeric-widen` | <i class="fa fa-times fa-lg"></i> |
181-
| `-Ywarn-unused:<warnings>` | <i class="fa fa-times fa-lg"></i> |
182-
| `-Ywarn-value-discard` | <i class="fa fa-times fa-lg"></i> |
183-
184-
## Verbose Settings
185-
186-
Verbose settings were introduced in 2.13.
187-
Most of them are not yet implemented in Scala 3.
188-
189-
| 2.13.x | 3.0.x |
190-
|-|-|
191-
| `-Vbrowse:<phases>` | <i class="fa fa-times fa-lg"></i> |
192-
| `-Vdebug-tasty` | <i class="fa fa-times fa-lg"></i> |
193-
| `-Vdoc` | <i class="fa fa-times fa-lg"></i> |
194-
| `-Vfree-terms` | <i class="fa fa-times fa-lg"></i> |
195-
| `-Vfree-types` | <i class="fa fa-times fa-lg"></i> |
196-
| `-Vhot-statistics`| <i class="fa fa-times fa-lg"></i> |
197-
| `-Vide`| <i class="fa fa-times fa-lg"></i> |
198-
| `-Vimplicit-conversions`| <i class="fa fa-times fa-lg"></i> |
199-
| `-Vimplicits`| <i class="fa fa-times fa-lg"></i> |
200-
| `-Vinline <package/Class.method>` | <i class="fa fa-times fa-lg"></i> |
201-
| `-Vissue`| <i class="fa fa-times fa-lg"></i> |
202-
| `-Vmacro` | <i class="fa fa-times fa-lg"></i> |
203-
| `-Vmacro-lite` | <i class="fa fa-times fa-lg"></i> |
204-
| `-Vopt <package/Class.method>` | <i class="fa fa-times fa-lg"></i> |
205-
| `-Vpatmat` | <i class="fa fa-times fa-lg"></i> |
206-
| `-Vpos`| <i class="fa fa-times fa-lg"></i> |
207-
| `-Vprint:<phases>` | `-Xprint:<phases>` |
208-
| `-Vphases` | `-Xshow-phases` |
209-
| `-Vclasspath` | `-Ylog-classpath` |
210-
| `-Vlog:<phases>` | `-Ylog:<phases>`|
211-
| `-Vdebug` | `-Ydebug` |
212-
| `-Vprint-args <file>` | <i class="fa fa-times fa-lg"></i> |
213-
| `-Vprint-pos` | `-Yprint-pos` |
214-
| `-Vprint-types` | `-Xprint-types` |
215-
| `-Vquasiquote` | <i class="fa fa-times fa-lg"></i> |
216-
| `-Vreflective-calls` | <i class="fa fa-times fa-lg"></i> |
217-
| `-Vreify` | <i class="fa fa-times fa-lg"></i> |
218-
| `-Vshow:<phases>` | <i class="fa fa-times fa-lg"></i> |
219-
| `-Vshow-class <class>` | <i class="fa fa-times fa-lg"></i> |
220-
| `-Vshow-member-pos <output style>` | <i class="fa fa-times fa-lg"></i> |
221-
| `-Vshow-object <object>` | <i class="fa fa-times fa-lg"></i> |
222-
| `-Vshow-symkinds` | <i class="fa fa-times fa-lg"></i> |
223-
| `-Vshow-symowners` | <i class="fa fa-times fa-lg"></i> |
224-
| `-Vstatistics <phases>` | <i class="fa fa-times fa-lg"></i> |
225-
| `-Vsymbols` | <i class="fa fa-times fa-lg"></i> |
226-
| `-Vtyper` | <i class="fa fa-times fa-lg"></i> |
227-
228-
## Warning Settings
229-
230-
Warning settings were introduced in 2.13.
231-
Most of them are not yet implemented in Scala 3.
232-
233-
| 2.13.x | 3.0.x |
234-
|-|-|
235-
| `-Wconf` | <i class="fa fa-times fa-lg"></i> |
236-
| `-Wdead-code` | <i class="fa fa-times fa-lg"></i> |
237-
| `-Werror` | `-Xfatal-warnings` |
238-
| `-Wextra-implicit` | <i class="fa fa-times fa-lg"></i> |
239-
| `-Wmacros:<mode>` | <i class="fa fa-times fa-lg"></i> |
240-
| `-Wnumeric-widen` | <i class="fa fa-times fa-lg"></i> |
241-
| `-Woctal-literal` | <i class="fa fa-times fa-lg"></i> |
242-
| `-Wunused:<warnings>` | <i class="fa fa-times fa-lg"></i> |
243-
| `-Wvalue-discard`| <i class="fa fa-times fa-lg"></i> |
244-
| `-Wself-implicit` | <i class="fa fa-times fa-lg"></i> |
245240

246241
## Compiler Plugins
247242

0 commit comments

Comments
 (0)