Skip to content

Commit

Permalink
Add changelog for 3.6.2
Browse files Browse the repository at this point in the history
  • Loading branch information
WojciechMazur committed Dec 9, 2024
1 parent d9ecb34 commit 795994f
Showing 1 changed file with 244 additions and 0 deletions.
244 changes: 244 additions & 0 deletions changelogs/3.6.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
# Highlights of the release

- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) [#20861](https://github.com/scala/scala3/pull/20861)
- Stabilise SIP-64 (New syntax of givens and context bounds) [#21668](https://github.com/scala/scala3/pull/21668)
- Context Bounds for Polymorphic Functions [#21643](https://github.com/scala/scala3/pull/21643)
- Switch mapping of context bounds to using clauses in 3.6 [#21257](https://github.com/scala/scala3/pull/21257)
- Enable betterMatchTypeExtractors in >= 3.6 [#21198](https://github.com/scala/scala3/pull/21198)
- Require named arguments for java defined annotations [#21329](https://github.com/scala/scala3/pull/21329)
- Refine the bounds of the `Tuple.Filter` type lambda predicate .. [#21286](https://github.com/scala/scala3/pull/21286)
- Add an infix shorthand for `Tuple.{Append, Concat}` [#21288](https://github.com/scala/scala3/pull/21288)
- Add .msi artifacts to release assets [#21834](https://github.com/scala/scala3/pull/21834)
- Implement SIP-62 as experimental - For comprehension improvements [#20522](https://github.com/scala/scala3/pull/20522)
- Implement SIP-57 as experimental - add runtimeChecked method and annotation [#20987](https://github.com/scala/scala3/pull/20987)

# Other changes and fixes

## Annotations

- Tighten java annot value parsing [#21650](https://github.com/scala/scala3/pull/21650)

## Erasure

- Fixes IllegalAccessError with Java package protected class [#21362](https://github.com/scala/scala3/pull/21362)

## Experimental: Capture Checking

- Fix setup of CapSet arguments. [#21309](https://github.com/scala/scala3/pull/21309)
- Check all top-level covariant capture sets in checkNotUniversal [#21428](https://github.com/scala/scala3/pull/21428)
- Charge also dcs of local reaches to capture set of enclosing method [#21443](https://github.com/scala/scala3/pull/21443)
- No need to unbox if expected type is LhsProto [#21508](https://github.com/scala/scala3/pull/21508)
- Treat more closure parameter types as inferred [#21583](https://github.com/scala/scala3/pull/21583)
- Existential Capabilities [#20566](https://github.com/scala/scala3/pull/20566)
- Fixes for cleanup retains scheme [#21350](https://github.com/scala/scala3/pull/21350)
- Improve Contains handling [#21361](https://github.com/scala/scala3/pull/21361)
- Expand Capability types T to T^ only if no explicit capture set is given [#21375](https://github.com/scala/scala3/pull/21375)
- Tighten closure extractor in TreeInfo [#21621](https://github.com/scala/scala3/pull/21621)

## Experimental: Global Initialization

- Analyze object when selecting from package [#21511](https://github.com/scala/scala3/pull/21511)
- Fix bug in init checker while compiling scodec-bits community project [#21574](https://github.com/scala/scala3/pull/21574)

## Experimental: Named Tuples

- Finalize named tuples [#21710](https://github.com/scala/scala3/pull/21710)
- Move `NamedTuple.head` to `NamedTupleDecomposition` [#21308](https://github.com/scala/scala3/pull/21308)
- Move `NonEmptyTuple` members into `Tuple` [#21291](https://github.com/scala/scala3/pull/21291)
- Migration rewrites for infix arguments interpreted as named tuples [#21949](https://github.com/scala/scala3/pull/21949)
- Make named tuples a standard feature [#21680](https://github.com/scala/scala3/pull/21680)
- Make named tuples an experimental feature again [#22045](https://github.com/lampepfl/dotty/pull/22045)

## Experimental: Strict Equality

- Fix #21392: Adjust `canComparePredefined(Nothing, T)` in explicit nulls [#21504](https://github.com/scala/scala3/pull/21504)
- Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) [#21389](https://github.com/scala/scala3/pull/21389)

## Experimentals

- [experimental feature] Support HOAS pattern with type variables for quote pattern matching [#18271](https://github.com/scala/scala3/pull/18271)

## Exports

- Re-use attachment in exportForwarders to handle ambiguous overloads [#21518](https://github.com/scala/scala3/pull/21518)
- Allow export statements in AnyVal [#21653](https://github.com/scala/scala3/pull/21653)

## Extension Methods

- Make right assoc ext method fwd refs error [#21641](https://github.com/scala/scala3/pull/21641)

## Inline

- Fix: throw an error before assigning ErrorType when expanding constValue [#21364](https://github.com/scala/scala3/pull/21364)

## Implicits

- Fix prioritization of `given`s over `implicit`s [#21226](https://github.com/scala/scala3/pull/21226)

## JVM Backend

- Backend computes line number from source of position [#21763](https://github.com/scala/scala3/pull/21763)

## Linting

- CheckUnused checks type param annotations [#20549](https://github.com/scala/scala3/pull/20549)

## Match Types

- Fix #21295: Restrict `provablyDisjoint` with `Nothing`s in invariant type params. [#21891](https://github.com/scala/scala3/pull/21891)
- Do not propagate `TypeError`s of ops from `TypeComparer#tryAlso` [#21070](https://github.com/scala/scala3/pull/21070)
- Fix #21402: Always allow type member extraction for stable scrutinees in match types. [#21700](https://github.com/scala/scala3/pull/21700)
- Add a 3.6-migration warning for MT lubbing [#21336](https://github.com/scala/scala3/pull/21336)
- Always interpret underscores inside patterns as type bounds [#21718](https://github.com/scala/scala3/pull/21718)

## Opaque Types

- Capture the kse3 issue in test cases and close it [#21260](https://github.com/scala/scala3/pull/21260)

## Parser

- Guard against recursive lower bounds in constraints [#21587](https://github.com/scala/scala3/pull/21587)
- Handle old given syntax where identifier and type are seperated by new line [#21957](https://github.com/scala/scala3/pull/21957)
- Fix: Allow `as` as an infix type in non context bound types [#21849](https://github.com/scala/scala3/pull/21849)
- Revised given syntax [#21208](https://github.com/scala/scala3/pull/21208)
- Make context bounds for poly functions a standard feature [#22019](https://github.com/scala/scala3/pull/22019)

## Pattern Matching

- Optimise SpaceEngine.signature [#21791](https://github.com/scala/scala3/pull/21791)
- Fix a bundle of patmat issues [#21000](https://github.com/scala/scala3/pull/21000)

## Pickling

- Some fixes for AnnotatedTypes mapping [#19957](https://github.com/scala/scala3/pull/19957)

## Polyfunctions

- Fix: Check if a PolyFunction TypeTree has no ByName parameters [#21671](https://github.com/scala/scala3/pull/21671)

## Presentation Compiler

- Add regression test for issue 18726 [#20318](https://github.com/scala/scala3/pull/20318)
- Remove artificial `CURSOR` added to code in the completions [#20899](https://github.com/scala/scala3/pull/20899)
- Fix autoimports with using directives [#21590](https://github.com/scala/scala3/pull/21590)

## Quotes

- Handle suspension due to macro call in arbitrary phases [#21651](https://github.com/scala/scala3/pull/21651)
- Have a better error message when healing types [#21711](https://github.com/scala/scala3/pull/21711)
- Bound TypeRepr by Matchable in Quotes [#21377](https://github.com/scala/scala3/pull/21377)
- Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) [#20494](https://github.com/scala/scala3/pull/20494)

## Reflection

- Add the possibility to create a typeSymbol in the Quotes API [#20347](https://github.com/scala/scala3/pull/20347)
- Fix stale symbols connected to lazy vals in macros [#21559](https://github.com/scala/scala3/pull/21559)

## Reporting

- Add better error reporting for inlined non-immutable paths [#21639](https://github.com/scala/scala3/pull/21639)
- Only replace *new* errors by warnings under `-migration` [#21289](https://github.com/scala/scala3/pull/21289)
- Warn when named tuples resemble assignments [#21823](https://github.com/scala/scala3/pull/21823)

## REPL

- REPL: JLine 3.27.0 (was 3.25.1) [#21752](https://github.com/scala/scala3/pull/21752)
- Ignore best effort settings in repl and update docs [#21540](https://github.com/scala/scala3/pull/21540)

## Rewrites

- Remove empty argument lists for classes with only context bounds [#21513](https://github.com/scala/scala3/pull/21513)
- Fix rewrite logic for old `<function> _` syntax [#21715](https://github.com/scala/scala3/pull/21715)
- Remove the `-rewrite` option for `typechecks` methods in Quotes [#21547](https://github.com/scala/scala3/pull/21547)
- Add migration rewrite for non-named arguments in Java annotations [#21397](https://github.com/scala/scala3/pull/21397)

## Runner

- Update Scala CLI to 1.5.4 (was 1.5.1) & coursier to 2.1.18 (was 2.1.13) [#22021](https://github.com/lampepfl/dotty/pull/22021)
- [Scala CLI 1.5.2 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.2) highlights:
- `--source` is now deprecated and scheduled for removal in Scala CLI v1.6.x
- Initial support for emitting Wasm with a command line option and a directive
- [Scala CLI 1.5.3 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.3)
- [Scala CLI 1.5.4 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.4)

## Scaladoc

- Only trim one newline when preprocessing the content of a markdown code snippet [#21519](https://github.com/scala/scala3/pull/21519)
- Filter opaque modifier from object documentation [#21640](https://github.com/scala/scala3/pull/21640)
- Bump Inkuire version to fix it for the new Scala versions [#21611](https://github.com/scala/scala3/pull/21611)

## Standard Library

- Scala 2.13.15 (was .14) [#21648](https://github.com/scala/scala3/pull/21648)
- Define binary symbolic compiletime ops as `infix` [#21683](https://github.com/scala/scala3/pull/21683)

## Transform

- Fix treatment of separately compiled @native methods in FirstTransform [#21593](https://github.com/scala/scala3/pull/21593)
- Three fixes to SAM type handling [#21596](https://github.com/scala/scala3/pull/21596)
- Always rewrite empty List() to Nil [#21689](https://github.com/scala/scala3/pull/21689)
- Add support for clauseInterleaving in JVM generic signatures [#21709](https://github.com/scala/scala3/pull/21709)

## Typeclass Derivation

- Nicer error message in case a `derived` method has an explicit term param [#21332](https://github.com/scala/scala3/pull/21332)

## Typer

- Calm param autotupling for overloads [#21552](https://github.com/scala/scala3/pull/21552)
- Survive inaccessible types when computing implicit scope [#21589](https://github.com/scala/scala3/pull/21589)
- Avoid cyclic errors forcing default arg types [#21597](https://github.com/scala/scala3/pull/21597)
- Allow autotupling if fn's param is a type param [#21741](https://github.com/scala/scala3/pull/21741)
- Fix extending protected nested java classes [#21857](https://github.com/scala/scala3/pull/21857)
- Fix incorrect caching with dependent method parameters [#21699](https://github.com/scala/scala3/pull/21699)

# Contributors

Thank you to all the contributors who made this release possible 🎉

According to `git shortlog -sn --no-merges 3.5.2..3.6.2` these are:

```
128 Martin Odersky
53 Wojciech Mazur
44 Dale Wijnand
35 Hamza REMMAL
33 Kacper Korban
31 Eugene Flesselle
22 Hamza Remmal
11 Katarzyna Marek
10 Matt Bovel
9 noti0na1
9 rochala
8 Jamie Thompson
8 Jan Chyb
7 Adrien Piquerez
7 Som Snytt
7 Sébastien Doeraene
7 dependabot[bot]
6 Yichen Xu
5 EnzeXing
5 Guillaume Martres
4 Fengyun Liu
4 kasiaMarek
3 Martin Duhem
3 Oliver Bracevac
3 Piotr Chabelski
2 Aleksander Rainko
2 David Hua
2 Florian3k
2 HarrisL2
2 Joel Wilsson
2 Jędrzej Rochala
2 Kenji Yoshida
1 Eugene Yokota
1 Kavin Satheeskumar
1 Lorenzo Gabriele
1 Michel Charpentier
1 Ondrej Lhotak
1 Raphael Jolly
1 Tomasz Godzik
1 Yuito Murase
1 crunchyfrog
1 philippus
```

0 comments on commit 795994f

Please sign in to comment.