Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e6bba1d

Browse files
committedOct 18, 2024
Add changelog for 3.6.0-RC1
1 parent b030466 commit e6bba1d

File tree

1 file changed

+227
-0
lines changed

1 file changed

+227
-0
lines changed
 

‎changelogs/3.6.0-RC1.md

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

0 commit comments

Comments
 (0)
Please sign in to comment.