Skip to content

Commit

Permalink
Add changelog for 3.6.0-RC1
Browse files Browse the repository at this point in the history
  • Loading branch information
WojciechMazur committed Oct 17, 2024
1 parent eed30c3 commit 52a789d
Showing 1 changed file with 227 additions and 0 deletions.
227 changes: 227 additions & 0 deletions changelogs/3.6.0-RC1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
# Highlights of the release

- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) [#20861](https://github.com/scala/scala3/pull/20861)
- Implement SIP-57 - add runtimeChecked method and annotation [#20987](https://github.com/scala/scala3/pull/20987)
- Implement SIP-62 - For comprehension improvements [#20522](https://github.com/scala/scala3/pull/20522)
- Implement SIP-64 as non-experimental [#21668](https://github.com/scala/scala3/pull/21668)
- Make named tuples a standard feature [#21680](https://github.com/scala/scala3/pull/21680)
- Switch mapping of context bounds to using clauses in 3.6 [#21257](https://github.com/scala/scala3/pull/21257)
- Require named arguments for java defined annotations [#21329](https://github.com/scala/scala3/pull/21329)

# Other changes and fixes

## Annotations

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

## Dependencies

- REPL: JLine 3.27.0 (was 3.25.1) [#21752](https://github.com/scala/scala3/pull/21752)
- Scala 2.13.15 (was .14) [#21648](https://github.com/scala/scala3/pull/21648)

## Erasure

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

## Experimental: Capture Checking

- Existential Capabilities [#20566](https://github.com/scala/scala3/pull/20566)
- 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)
- 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: 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)

## Experimental: Modularity

- Revised given syntax [#21208](https://github.com/scala/scala3/pull/21208)

## 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)

## 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)

## Library

- Finalize named tuples [#21710](https://github.com/scala/scala3/pull/21710)

## Match Types

- Enable betterMatchTypeExtractors in >= 3.6 [#21198](https://github.com/scala/scala3/pull/21198)
- 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)

## Pattern Matching

- 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)

## REPL

- 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)

## 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

- Move `NamedTuple.head` to `NamedTupleDecomposition` [#21308](https://github.com/scala/scala3/pull/21308)
- 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)
- 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.0-RC1` these are:

```
128 Martin Odersky
35 Hamza REMMAL
34 Dale Wijnand
27 Eugene Flesselle
22 Hamza Remmal
22 Wojciech Mazur
12 Kacper Korban
11 Katarzyna Marek
9 noti0na1
9 rochala
8 Jamie Thompson
8 Jan Chyb
7 Adrien Piquerez
7 Matt Bovel
7 Som Snytt
7 dependabot[bot]
6 Yichen Xu
5 EnzeXing
5 Guillaume Martres
5 Sébastien Doeraene
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 52a789d

Please sign in to comment.