Skip to content

Commit 5a4f446

Browse files
committed
Add changelog for 3.6.2-RC1
1 parent 059c539 commit 5a4f446

File tree

1 file changed

+239
-0
lines changed

1 file changed

+239
-0
lines changed

changelogs/3.6.2-RC1.md

Lines changed: 239 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
1+
> [!NOTE]
2+
> Scala 3.6.2 would become the first official release for the Scala 3.6 series.
3+
> Versions 3.6.0 (a broken release) and 3.6.1 (a hotfix release) should never be used. For more information, refer to the [Scala 3.6.0 Post Mortem blogpost](https://www.scala-lang.org/news/post-mortem-3.6.0.html)
4+
>
5+
> Scala 3.6.2 should effectively be regarded as "3.6.0" for all intents and purposes.
6+
> This includes also an exception in versioning of produced TASTy files by its release candidates - `3.6.2-RC*`.
7+
> Scala compiler emits TASTy files in an experimental version for candidates of a new **minor version** (e.g. `3.x.0-RC1`), contrary to release candidates of a new **patch version** (e.g. `3.x.1-RC1`) that emit a non-experimental TASTy in version established by the first stable release of their respective minor version.
8+
> Libraries should never publish artifacts containing experimental TASTy files. Instead, authors should wait until the stabilization of the TASTy format in Scala 3.6.2.
9+
10+
# Highlights of the release
11+
12+
- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) [#20861](https://github.com/scala/scala3/pull/20861)
13+
- Stablise SIP-64 [#21668](https://github.com/scala/scala3/pull/21668)
14+
- Context Bounds for Polymorphic Functions [#21643](https://github.com/scala/scala3/pull/21643)
15+
- Make named tuples a standard feature [#21680](https://github.com/scala/scala3/pull/21680)
16+
- Switch mapping of context bounds to using clauses in 3.6 [#21257](https://github.com/scala/scala3/pull/21257)
17+
- Enable betterMatchTypeExtractors in >= 3.6 [#21198](https://github.com/scala/scala3/pull/21198)
18+
- Require named arguments for java defined annotations [#21329](https://github.com/scala/scala3/pull/21329)
19+
- Refine the bounds of the `Tuple.Filter` type lambda predicate .. [#21286](https://github.com/scala/scala3/pull/21286)
20+
- Add an infix shorthand for `Tuple.{Append, Concat}` [#21288](https://github.com/scala/scala3/pull/21288)
21+
- Move `NonEmptyTuple` members into `Tuple` [#21291](https://github.com/scala/scala3/pull/21291)
22+
- Add .msi artifacts to release assets [#21834](https://github.com/scala/scala3/pull/21834)
23+
- Migration rewrites for infix arguments interpreted as named tuples [#21949](https://github.com/scala/scala3/pull/21949)
24+
- Implement SIP-62 as experimental - For comprehension improvements [#20522](https://github.com/scala/scala3/pull/20522)
25+
- Implement SIP-57 as experimental - add runtimeChecked method and annotation [#20987](https://github.com/scala/scala3/pull/20987)
26+
27+
# Other changes and fixes
28+
29+
## Annotations
30+
31+
- Tighten java annot value parsing [#21650](https://github.com/scala/scala3/pull/21650)
32+
33+
## Erasure
34+
35+
- Fixes IllegalAccessError with Java package protected class [#21362](https://github.com/scala/scala3/pull/21362)
36+
37+
## Experimental: Capture Checking
38+
39+
- Fix setup of CapSet arguments. [#21309](https://github.com/scala/scala3/pull/21309)
40+
- Check all top-level covariant capture sets in checkNotUniversal [#21428](https://github.com/scala/scala3/pull/21428)
41+
- Charge also dcs of local reaches to capture set of enclosing method [#21443](https://github.com/scala/scala3/pull/21443)
42+
- No need to unbox if expected type is LhsProto [#21508](https://github.com/scala/scala3/pull/21508)
43+
- Treat more closure parameter types as inferred [#21583](https://github.com/scala/scala3/pull/21583)
44+
- Existential Capabilities [#20566](https://github.com/scala/scala3/pull/20566)
45+
- Fixes for cleanup retains scheme [#21350](https://github.com/scala/scala3/pull/21350)
46+
- Improve Contains handling [#21361](https://github.com/scala/scala3/pull/21361)
47+
- Expand Capability types T to T^ only if no explicit capture set is given [#21375](https://github.com/scala/scala3/pull/21375)
48+
- Tighten closure extractor in TreeInfo [#21621](https://github.com/scala/scala3/pull/21621)
49+
50+
## Experimental: Global Initialization
51+
52+
- Analyze object when selecting from package [#21511](https://github.com/scala/scala3/pull/21511)
53+
- Fix bug in init checker while compiling scodec-bits community project [#21574](https://github.com/scala/scala3/pull/21574)
54+
55+
## Experimental: Strict Equality
56+
57+
- Fix #21392: Adjust `canComparePredefined(Nothing, T)` in explicit nulls [#21504](https://github.com/scala/scala3/pull/21504)
58+
- Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) [#21389](https://github.com/scala/scala3/pull/21389)
59+
60+
## Experimentals
61+
62+
- [experimental feature] Support HOAS pattern with type variables for quote pattern matching [#18271](https://github.com/scala/scala3/pull/18271)
63+
64+
## Exports
65+
66+
- Re-use attachment in exportForwarders to handle ambiguous overloads [#21518](https://github.com/scala/scala3/pull/21518)
67+
- Allow export statements in AnyVal [#21653](https://github.com/scala/scala3/pull/21653)
68+
69+
## Extension Methods
70+
71+
- Make right assoc ext method fwd refs error [#21641](https://github.com/scala/scala3/pull/21641)
72+
73+
## Inline
74+
75+
- Fix: throw an error before assigning ErrorType when expanding constValue [#21364](https://github.com/scala/scala3/pull/21364)
76+
77+
## Implicits
78+
79+
- Fix prioritization of `given`s over `implicit`s [#21226](https://github.com/scala/scala3/pull/21226)
80+
81+
## JVM Backend
82+
83+
- Backend computes line number from source of position [#21763](https://github.com/scala/scala3/pull/21763)
84+
85+
## Linting
86+
87+
- CheckUnused checks type param annotations [#20549](https://github.com/scala/scala3/pull/20549)
88+
89+
## Match Types
90+
91+
- Fix #21295: Restrict `provablyDisjoint` with `Nothing`s in invariant type params. [#21891](https://github.com/scala/scala3/pull/21891)
92+
- Do not propagate `TypeError`s of ops from `TypeComparer#tryAlso` [#21070](https://github.com/scala/scala3/pull/21070)
93+
- Fix #21402: Always allow type member extraction for stable scrutinees in match types. [#21700](https://github.com/scala/scala3/pull/21700)
94+
- Add a 3.6-migration warning for MT lubbing [#21336](https://github.com/scala/scala3/pull/21336)
95+
- Always interpret underscores inside patterns as type bounds [#21718](https://github.com/scala/scala3/pull/21718)
96+
97+
## Opaque Types
98+
99+
- Capture the kse3 issue in test cases and close it [#21260](https://github.com/scala/scala3/pull/21260)
100+
101+
## Parser
102+
103+
- Guard against recursive lower bounds in constraints [#21587](https://github.com/scala/scala3/pull/21587)
104+
- Handle old given syntax where identifier and type are seperated by new line [#21957](https://github.com/scala/scala3/pull/21957)
105+
- Fix: Allow `as` as an infix type in non context bound types [#21849](https://github.com/scala/scala3/pull/21849)
106+
- Revised given syntax [#21208](https://github.com/scala/scala3/pull/21208)
107+
108+
## Pattern Matching
109+
110+
- Optimise SpaceEngine.signature [#21791](https://github.com/scala/scala3/pull/21791)
111+
- Fix a bundle of patmat issues [#21000](https://github.com/scala/scala3/pull/21000)
112+
113+
## Pickling
114+
115+
- Some fixes for AnnotatedTypes mapping [#19957](https://github.com/scala/scala3/pull/19957)
116+
117+
## Polyfunctions
118+
119+
- Fix: Check if a PolyFunction TypeTree has no ByName parameters [#21671](https://github.com/scala/scala3/pull/21671)
120+
121+
## Presentation Compiler
122+
123+
- Add regression test for issue 18726 [#20318](https://github.com/scala/scala3/pull/20318)
124+
- Remove artificial `CURSOR` added to code in the completions [#20899](https://github.com/scala/scala3/pull/20899)
125+
- Fix autoimports with using directives [#21590](https://github.com/scala/scala3/pull/21590)
126+
127+
## Quotes
128+
129+
- Handle suspension due to macro call in arbitrary phases [#21651](https://github.com/scala/scala3/pull/21651)
130+
- Have a better error message when healing types [#21711](https://github.com/scala/scala3/pull/21711)
131+
- Bound TypeRepr by Matchable in Quotes [#21377](https://github.com/scala/scala3/pull/21377)
132+
- Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) [#20494](https://github.com/scala/scala3/pull/20494)
133+
134+
## Reflection
135+
136+
- Add the possibility to create a typeSymbol in the Quotes API [#20347](https://github.com/scala/scala3/pull/20347)
137+
- Fix stale symbols connected to lazy vals in macros [#21559](https://github.com/scala/scala3/pull/21559)
138+
139+
## Reporting
140+
141+
- Add better error reporting for inlined non-immutable paths [#21639](https://github.com/scala/scala3/pull/21639)
142+
- Only replace *new* errors by warnings under `-migration` [#21289](https://github.com/scala/scala3/pull/21289)
143+
- Warn when named tuples resemble assignments [#21823](https://github.com/scala/scala3/pull/21823)
144+
145+
## REPL
146+
147+
- REPL: JLine 3.27.0 (was 3.25.1) [#21752](https://github.com/scala/scala3/pull/21752)
148+
- Ignore best effort settings in repl and update docs [#21540](https://github.com/scala/scala3/pull/21540)
149+
150+
## Rewrites
151+
152+
- Remove empty argument lists for classes with only context bounds [#21513](https://github.com/scala/scala3/pull/21513)
153+
- Fix rewrite logic for old `<function> _` syntax [#21715](https://github.com/scala/scala3/pull/21715)
154+
- Remove the `-rewrite` option for `typechecks` methods in Quotes [#21547](https://github.com/scala/scala3/pull/21547)
155+
- Add migration rewrite for non-named arguments in Java annotations [#21397](https://github.com/scala/scala3/pull/21397)
156+
157+
## Scaladoc
158+
159+
- Only trim one newline when preprocessing the content of a markdown code snippet [#21519](https://github.com/scala/scala3/pull/21519)
160+
- Filter opaque modifier from object documentation [#21640](https://github.com/scala/scala3/pull/21640)
161+
- Bump Inkuire version to fix it for the new Scala versions [#21611](https://github.com/scala/scala3/pull/21611)
162+
163+
## Standard Library
164+
165+
- Scala 2.13.15 (was .14) [#21648](https://github.com/scala/scala3/pull/21648)
166+
- Define binary symbolic compiletime ops as `infix` [#21683](https://github.com/scala/scala3/pull/21683)
167+
- Finalize named tuples [#21710](https://github.com/scala/scala3/pull/21710)
168+
- Move `NamedTuple.head` to `NamedTupleDecomposition` [#21308](https://github.com/scala/scala3/pull/21308)
169+
170+
## Transform
171+
172+
- Fix treatment of separately compiled @native methods in FirstTransform [#21593](https://github.com/scala/scala3/pull/21593)
173+
- Three fixes to SAM type handling [#21596](https://github.com/scala/scala3/pull/21596)
174+
- Always rewrite empty List() to Nil [#21689](https://github.com/scala/scala3/pull/21689)
175+
- Add support for clauseInterleaving in JVM generic signatures [#21709](https://github.com/scala/scala3/pull/21709)
176+
177+
## Typeclass Derivation
178+
179+
- Nicer error message in case a `derived` method has an explicit term param [#21332](https://github.com/scala/scala3/pull/21332)
180+
181+
## Typer
182+
183+
- Calm param autotupling for overloads [#21552](https://github.com/scala/scala3/pull/21552)
184+
- Survive inaccessible types when computing implicit scope [#21589](https://github.com/scala/scala3/pull/21589)
185+
- Avoid cyclic errors forcing default arg types [#21597](https://github.com/scala/scala3/pull/21597)
186+
- Allow autotupling if fn's param is a type param [#21741](https://github.com/scala/scala3/pull/21741)
187+
- Fix extending protected nested java classes [#21857](https://github.com/scala/scala3/pull/21857)
188+
- Fix incorrect caching with dependent method parameters [#21699](https://github.com/scala/scala3/pull/21699)
189+
190+
# Contributors
191+
192+
Thank you to all the contributors who made this release possible 🎉
193+
194+
According to `git shortlog -sn --no-merges 3.5.2..3.6.2-RC1` these are:
195+
196+
```
197+
128 Martin Odersky
198+
44 Dale Wijnand
199+
42 Wojciech Mazur
200+
35 Hamza REMMAL
201+
33 Kacper Korban
202+
31 Eugene Flesselle
203+
22 Hamza Remmal
204+
11 Katarzyna Marek
205+
10 Matt Bovel
206+
9 noti0na1
207+
9 rochala
208+
8 Jamie Thompson
209+
8 Jan Chyb
210+
7 Adrien Piquerez
211+
7 Som Snytt
212+
7 Sébastien Doeraene
213+
7 dependabot[bot]
214+
6 Yichen Xu
215+
5 EnzeXing
216+
5 Guillaume Martres
217+
4 Fengyun Liu
218+
4 kasiaMarek
219+
3 Martin Duhem
220+
3 Oliver Bracevac
221+
3 Piotr Chabelski
222+
2 Aleksander Rainko
223+
2 David Hua
224+
2 Florian3k
225+
2 HarrisL2
226+
2 Joel Wilsson
227+
2 Jędrzej Rochala
228+
2 Kenji Yoshida
229+
1 Eugene Yokota
230+
1 Kavin Satheeskumar
231+
1 Lorenzo Gabriele
232+
1 Michel Charpentier
233+
1 Ondrej Lhotak
234+
1 Raphael Jolly
235+
1 Tomasz Godzik
236+
1 Yuito Murase
237+
1 crunchyfrog
238+
1 philippus
239+
```

0 commit comments

Comments
 (0)