Skip to content

Commit 4377e99

Browse files
committed
Add changelog for 3.6.4
1 parent 9d7f439 commit 4377e99

File tree

1 file changed

+168
-0
lines changed

1 file changed

+168
-0
lines changed

changelogs/3.6.4.md

+168
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
2+
# Highlights of the release
3+
4+
- Support for JDK 24 [#22250](https://github.com/scala/scala3/pull/22250)
5+
- REPL `:silent` command to toggle automatic printing of outputs [#22248](https://github.com/scala/scala3/pull/22248)
6+
- REPL `--repl-init-script:` setting to run a code on startup [#22206](https://github.com/scala/scala3/pull/22206)
7+
- Deprecated setting `-Xno-decode-stacktraces` is now an alias to `-Xno-enrich-error-messages` [#22208](https://github.com/scala/scala3/pull/22208)
8+
- Annotation arguments are no longer lifted [#22035](https://github.com/scala/scala3/pull/22035)
9+
- Experimental Capture Checking: Implement tracked members [#21761](https://github.com/scala/scala3/pull/21761)
10+
11+
## Breaking changes
12+
13+
- Align `@implicitNotFound` and `@implicitAmbigous` with the language specification [#22371](https://github.com/scala/scala3/pull/22371)
14+
15+
This change may impact users who previously used these annotations using variables or string interpolation.
16+
17+
Previously, a bug in the Scala 3 compiler allowed non-literal strings to be passed as arguments to the `@implicitNotFound` and `@implicitAmbiguous` annotations.
18+
This could have affected how failed implicit search results were reported by the compiler.
19+
20+
Starting from Scala 3.6.4, the arguments for these annotations must be string literals.
21+
If a message is too long, it can be concatenated using the `+` operator, allowing for constant folding.
22+
23+
# Other changes and fixes
24+
25+
## Annotations
26+
27+
- Make sure symbols in annotation trees are fresh before pickling [#22002](https://github.com/scala/scala3/pull/22002)
28+
- Consider all arguments in Annotations.refersToParamOf [#22001](https://github.com/scala/scala3/pull/22001)
29+
- Do not lift annotation arguments (bis) [#22046](https://github.com/scala/scala3/pull/22046)
30+
31+
## Desugaring
32+
33+
- Fix #22051: only trust the type application part for case class unapplies [#22099](https://github.com/scala/scala3/pull/22099)
34+
35+
## Documentation
36+
37+
- Update example code linked to obsolete content in macros-spec.md [#22256](https://github.com/scala/scala3/pull/22256)
38+
39+
## Experimental: Capture Checking
40+
41+
- Fix #21868, #21869, and #21870: handle CapsOf in more places [#21875](https://github.com/scala/scala3/pull/21875)
42+
- Refine rules for capture parameters and members [#22000](https://github.com/scala/scala3/pull/22000)
43+
- Add a hint for using CC with REPL [#22220](https://github.com/scala/scala3/pull/22220)
44+
- Consolidate CC [#21863](https://github.com/scala/scala3/pull/21863)
45+
46+
## Experimental: Global Initialization
47+
48+
- Fix crash when initializing val in ByName closure [#22354](https://github.com/scala/scala3/pull/22354)
49+
50+
## Experimental: Named Tuples
51+
52+
- Handle TypeProxy of Named Tuples in unapply [#22325](https://github.com/scala/scala3/pull/22325)
53+
- Fail more eagerly when trying to adapt named unapply patterns [#22315](https://github.com/scala/scala3/pull/22315)
54+
- Widen singleton types when computing fields from .Fields [#22149](https://github.com/scala/scala3/pull/22149)
55+
- Fix .toTuple insertion [#22028](https://github.com/scala/scala3/pull/22028)
56+
57+
## Extension Methods
58+
59+
- Tweak ExtensionNullifiedByMember [#22268](https://github.com/scala/scala3/pull/22268)
60+
- Nowarn extension matching nonpublic member [#21825](https://github.com/scala/scala3/pull/21825)
61+
62+
## Implicits
63+
64+
- Rollback constraints in compareAppliedTypeParamRef [#22339](https://github.com/scala/scala3/pull/22339)
65+
- Try implicit searching after finding dynamic select [#22318](https://github.com/scala/scala3/pull/22318)
66+
67+
## Linting
68+
69+
- Allow discarding "Discarded non-Unit" warnings with `: Unit` [#21927](https://github.com/scala/scala3/pull/21927)
70+
71+
## Match Types
72+
73+
- Fix #21841: Check more that an `unapplySeq` on a `NonEmptyTuple` is valid. [#22366](https://github.com/scala/scala3/pull/22366)
74+
- Type avoidance in MT bound inference [#22142](https://github.com/scala/scala3/pull/22142)
75+
76+
## Metaprogramming
77+
78+
- Rethrow SuspendExceptions caught in CodeGen phase [#22009](https://github.com/scala/scala3/pull/22009)
79+
80+
## Metaprogramming: Compile-time
81+
82+
- Extend compiletime.testing.typechecks with certain transform phases [#21185](https://github.com/scala/scala3/pull/21185)
83+
84+
## Nullability
85+
86+
- Fix #21619: Refactor NotNullInfo to record every reference which is retracted once. [#21624](https://github.com/scala/scala3/pull/21624)
87+
88+
## Presentation Compiler
89+
90+
- Use new infer expected type for singleton complations [#21421](https://github.com/scala/scala3/pull/21421)
91+
- Fix match error in keyword completions [#22138](https://github.com/scala/scala3/pull/22138)
92+
93+
## Reflection
94+
95+
- Do not return java outline dummy constructor in `primaryConstructor` [#22104](https://github.com/scala/scala3/pull/22104)
96+
97+
## Reporting
98+
99+
- Normalise the types for Type Mismatch Error (E007) [#22337](https://github.com/scala/scala3/pull/22337)
100+
- Improve given search preference warning [#22189](https://github.com/scala/scala3/pull/22189)
101+
- Better error messages when an enum derives from AnyVal [#22236](https://github.com/scala/scala3/pull/22236)
102+
- Correctly print litteral types in the refined printer [#22351](https://github.com/scala/scala3/pull/22351)
103+
104+
## Rewrites
105+
106+
- Undo patch of double-block apply [#21982](https://github.com/scala/scala3/pull/21982)
107+
108+
## Scaladoc
109+
110+
- Scaladoc: Add support for named tuples [#22263](https://github.com/scala/scala3/pull/22263)
111+
112+
## Settings
113+
114+
- Limit exposure to ConcurrentModificationException when sys props are replaced or mutated [#22180](https://github.com/scala/scala3/pull/22180)
115+
116+
## Specification
117+
118+
- Align the spec to allow the marker [#22323](https://github.com/scala/scala3/pull/22323)
119+
- Integrate the specification for match types. [#22164](https://github.com/scala/scala3/pull/22164)
120+
121+
## Transform
122+
123+
- Fix #22226: Use `classOf[BoxedUnit]` for Unit array in `ArrayConstructors`. [#22238](https://github.com/scala/scala3/pull/22238)
124+
125+
## Typer
126+
127+
- Fixes for isLegalPrefix change [#22241](https://github.com/scala/scala3/pull/22241)
128+
- Resolve name when named imp is behind wild imps [#21888](https://github.com/scala/scala3/pull/21888)
129+
130+
# Contributors
131+
132+
Thank you to all the contributors who made this release possible 🎉
133+
134+
According to `git shortlog -sn --no-merges 3.6.3..3.6.4` these are:
135+
136+
```
137+
46 Martin Odersky
138+
33 noti0na1
139+
24 Wojciech Mazur
140+
14 Dale Wijnand
141+
13 Matt Bovel
142+
11 Hamza Remmal
143+
7 Jan Chyb
144+
6 aherlihy
145+
5 Kacper Korban
146+
5 Seth Tisue
147+
5 Som Snytt
148+
4 Oliver Bračevac
149+
4 Yichen Xu
150+
3 Sébastien Doeraene
151+
3 dependabot[bot]
152+
3 kasiaMarek
153+
2 João Ferreira
154+
1 David Hua
155+
1 Eugene Flesselle
156+
1 Eugene Yokota
157+
1 Florian3k
158+
1 Jędrzej Rochala
159+
1 Kenji Yoshida
160+
1 Mathias
161+
1 Natsu Kagami
162+
1 Oleg Zenzin
163+
1 Piotr Chabelski
164+
1 Rui Chen
165+
1 philippus
166+
1 rochala
167+
1 xiaoshihou
168+
```

0 commit comments

Comments
 (0)