Skip to content

Commit fb80902

Browse files
committed
Add changelog for 3.6.1
1 parent ee78a3a commit fb80902

File tree

1 file changed

+235
-0
lines changed

1 file changed

+235
-0
lines changed

changelogs/3.6.1.md

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

0 commit comments

Comments
 (0)