Skip to content

Commit

Permalink
Add changelog for 3.5.0-RC1
Browse files Browse the repository at this point in the history
  • Loading branch information
Kordyjan committed May 14, 2024
1 parent d08d71b commit 271ccc5
Showing 1 changed file with 254 additions and 0 deletions.
254 changes: 254 additions & 0 deletions changelogs/3.5.0-RC1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
# Highlights of the release

- Bundle scala-cli in scala command (For RC1 requires JVM 17, further RCs will use native launchers)
- Introduce Best Effort compilation options [#17582](https://github.com/lampepfl/dotty/pull/17582)
- Add support for Pipelined builds [#18880](https://github.com/lampepfl/dotty/pull/18880)
- Add support for `var` in refinements [#19982](https://github.com/lampepfl/dotty/pull/19982)
- Implement SIP-42 - Support for binary integer literals [#19405](https://github.com/lampepfl/dotty/pull/19405)

# Other changes and fixes

## Backend

- Fix Closure span assignment in makeClosure [#15841](https://github.com/lampepfl/dotty/pull/15841)

## Default parameters

- Fix default args lookup for given classes [#20256](https://github.com/lampepfl/dotty/pull/20256)
- Fix implicit search failure reporting [#20261](https://github.com/lampepfl/dotty/pull/20261)

## Derivation

- Fix infinite loop in Mirror synthesis of unreducible match type [#20133](https://github.com/lampepfl/dotty/pull/20133)

## Desugaring

- Add explanation to checkCaseClassInheritanceInvariant error msg [#20141](https://github.com/lampepfl/dotty/pull/20141)

## Exports

- Add annotations in parameters for exports [#20140](https://github.com/lampepfl/dotty/pull/20140)
- Fix isAliasType [#20195](https://github.com/lampepfl/dotty/pull/20195)

## Implicits

- Fix implicitNotFound message for type aliases [#19343](https://github.com/lampepfl/dotty/pull/19343)
- Normalize types before collecting parts determining implicit scope [#20077](https://github.com/lampepfl/dotty/pull/20077)
- Better error diagnostics under -explain-cyclic [#20251](https://github.com/lampepfl/dotty/pull/20251)
- Update unreducible match types error reporting [#19954](https://github.com/lampepfl/dotty/pull/19954)
- Improve ConstraintHandling of SkolemTypes [#20175](https://github.com/lampepfl/dotty/pull/20175)

## Incremental Compilation

- Retain default parameters with `export` [#20167](https://github.com/lampepfl/dotty/pull/20167)

## Inline

- Fix by-name parameter in beta-reduction [#20096](https://github.com/lampepfl/dotty/pull/20096)
- Add warning for anonymous inline classes (#16723) [#20291](https://github.com/lampepfl/dotty/pull/20291)
- Avoid conversion of `Unit` type into `()` term [#20295](https://github.com/lampepfl/dotty/pull/20295)
- Type desugared `transparent inline def unapply` call in the correct mode [#20108](https://github.com/lampepfl/dotty/pull/20108)
- Regression: fix compilation performance on Windows [#20193](https://github.com/lampepfl/dotty/pull/20193)
- Fix inline match on blocks with multiple statements [#20125](https://github.com/lampepfl/dotty/pull/20125)
- Inline `unapply`s in the inlining phase [#19382](https://github.com/lampepfl/dotty/pull/19382)
- Fix outerSelect in Inliner [#20313](https://github.com/lampepfl/dotty/pull/20313)

## Linting

- Fix #20146: attach the original name if there is an import selection for an indent [#20163](https://github.com/lampepfl/dotty/pull/20163)
- Add regression test for issue 18632 [#20308](https://github.com/lampepfl/dotty/pull/20308)

## Match Types

- Make aliases of `MatchAlias`es normal `TypeAlias`es [#19871](https://github.com/lampepfl/dotty/pull/19871)
- Fix #19746: Do not follow param term refs in `isConcrete`. [#20015](https://github.com/lampepfl/dotty/pull/20015)
- Do match type reduction atPhaseNoLater than ElimOpaque [#20017](https://github.com/lampepfl/dotty/pull/20017)
- Do not flag match types as `Deferred` and amend #20077 [#20147](https://github.com/lampepfl/dotty/pull/20147)
- Always use baseType when constraining patternTp with scrutineeTp [#20032](https://github.com/lampepfl/dotty/pull/20032)
- Use `MirrorSource.reduce` result for `companionPath` [#20207](https://github.com/lampepfl/dotty/pull/20207)
- Regression: Fix match type extraction of a MatchAlias [#20111](https://github.com/lampepfl/dotty/pull/20111)

## Polyfunctions

- Discard poly-functions when trying to resolve overloading [#20181](https://github.com/lampepfl/dotty/pull/20181)

## Presentation Compiler

- Stabilise returned completions by improving deduplication + extra completions for constructors [#19976](https://github.com/lampepfl/dotty/pull/19976)
- Fix active param index for empty param lists [#20142](https://github.com/lampepfl/dotty/pull/20142)
- Delias type members in hover [#20173](https://github.com/lampepfl/dotty/pull/20173)
- Interactive: handle context bounds in extension construct workaround [#20201](https://github.com/lampepfl/dotty/pull/20201)
- Fix: prefer non-export definition locations [#20252](https://github.com/lampepfl/dotty/pull/20252)
- Don't show enum completions in new keyword context [#20304](https://github.com/lampepfl/dotty/pull/20304)
- Chore: Backport changes for presentation compiler [#20345](https://github.com/lampepfl/dotty/pull/20345)
- Add custom matchers for completions (fuzzy search for presentation compiler) [#19850](https://github.com/lampepfl/dotty/pull/19850)

## Quotes

- Fix TermRef prefixes not having their type healed [#20102](https://github.com/lampepfl/dotty/pull/20102)
- Improve reporting in staging about the possible use of an incorrect class loader [#20137](https://github.com/lampepfl/dotty/pull/20137)
- Introduce MethodTypeKind to quotes reflection API [#20249](https://github.com/lampepfl/dotty/pull/20249)
- Add quote ASTs to TASTy [#20165](https://github.com/lampepfl/dotty/pull/20165)

## Reflection

- Allow to beta reduce curried function applications in quotes reflect [#18121](https://github.com/lampepfl/dotty/pull/18121)
- Set the inlining phase in the Context used for checking macro trees [#20087](https://github.com/lampepfl/dotty/pull/20087)
- Add Symbol.isSuperAccessor to reflection API [#13388](https://github.com/lampepfl/dotty/pull/13388)
- Stabilize reflect `SymbolMethods.isSuperAccessor` [#20198](https://github.com/lampepfl/dotty/pull/20198)

## Repl

- Fix validity period of derived SingleDenotations [#19983](https://github.com/lampepfl/dotty/pull/19983)
- Fix #18383: Never consider top-level `import`s as unused in the repl. [#20310](https://github.com/lampepfl/dotty/pull/20310)

## Reporting

- Warn if extension receiver already has member [#17543](https://github.com/lampepfl/dotty/pull/17543)
- Deprecation of case class elements [#17911](https://github.com/lampepfl/dotty/pull/17911)
- Support src filter in -WConf (Closes #17635) [#18783](https://github.com/lampepfl/dotty/pull/18783)
- Add note about type mismatch in automatically inserted apply argument [#20023](https://github.com/lampepfl/dotty/pull/20023)
- Make error reporting resilient to exception thrown while reporting [#20158](https://github.com/lampepfl/dotty/pull/20158)
- Remove duplicate comma from Matchable selector warning [#20159](https://github.com/lampepfl/dotty/pull/20159)
- Generalize warnings for top-level calls to Any or AnyRef methods [#20312](https://github.com/lampepfl/dotty/pull/20312)
- Make CheckUnused not slow. [#20321](https://github.com/lampepfl/dotty/pull/20321)

## Rewrites

- Patch indentation when removing braces (and other bug fixes in `-indent -rewrite`) [#17522](https://github.com/lampepfl/dotty/pull/17522)
- Extra check to avoid converting block expressions on the rhs of an in… [#20043](https://github.com/lampepfl/dotty/pull/20043)

## Scaladoc

- Fix scaladoc crash on Windows - illegal path character [#20311](https://github.com/lampepfl/dotty/pull/20311)
- Scaladoc: improve refined function types rendering [#20333](https://github.com/lampepfl/dotty/pull/20333)
- Relax font-weight reset [#20348](https://github.com/lampepfl/dotty/pull/20348)

## Scala JS

- Optimize main.js [#20093](https://github.com/lampepfl/dotty/pull/20093)

## Settings

- Lift Scala Settings from experimental to stabilized [#20199](https://github.com/lampepfl/dotty/pull/20199)

## Tooling

- Detect macro dependencies that are missing from the classloader [#20139](https://github.com/lampepfl/dotty/pull/20139)
- Write pipelined tasty in parallel. [#20153](https://github.com/lampepfl/dotty/pull/20153)
- ConsoleReporter sends INFO to stdout [#20328](https://github.com/lampepfl/dotty/pull/20328)

## Transform

- Fix overloaded default methods test in RefChecks [#20218](https://github.com/lampepfl/dotty/pull/20218)
- Fix handling of AppliedType aliases in outerPrefix [#20190](https://github.com/lampepfl/dotty/pull/20190)
- Elide unit binding when beta-reducing [#20085](https://github.com/lampepfl/dotty/pull/20085)

## Typer

- Reduce projections of type aliases with class type prefixes [#19931](https://github.com/lampepfl/dotty/pull/19931)
- Re-lub also hard union types in simplify [#20027](https://github.com/lampepfl/dotty/pull/20027)
- Fix #19789: Merge same TypeParamRef in orDominator [#20090](https://github.com/lampepfl/dotty/pull/20090)
- Allow SAM types to contain match alias refinements [#20092](https://github.com/lampepfl/dotty/pull/20092)
- Don't dealias when deciding which arguments to defer [#20116](https://github.com/lampepfl/dotty/pull/20116)
- Avoid the TypeVar.inst trap [#20160](https://github.com/lampepfl/dotty/pull/20160)
- Avoid crash when superType does not exist after erasure [#20188](https://github.com/lampepfl/dotty/pull/20188)
- Refine overloading and implicit disambiguation [#20084](https://github.com/lampepfl/dotty/pull/20084)
- Refactor constant folding of applications [#20099](https://github.com/lampepfl/dotty/pull/20099)
- Rollback constraints if `isSameType` failed second direction [#20109](https://github.com/lampepfl/dotty/pull/20109)
- Suppress "extension method will never be selected" for overrides [#20164](https://github.com/lampepfl/dotty/pull/20164)
- Allow SAM types to contain multiple refinements [#20172](https://github.com/lampepfl/dotty/pull/20172)
- Normalize when verifying if TypeTestCasts are unchecked [#20258](https://github.com/lampepfl/dotty/pull/20258)

# Experimental Changes

- Named tuples second implementation [#19174](https://github.com/lampepfl/dotty/pull/19174)
- Change rules for given prioritization [#19300](https://github.com/lampepfl/dotty/pull/19300)
- Enable experimental mode when experimental feature is imported [#19807](https://github.com/lampepfl/dotty/pull/19807)
- Add message parameter to `@experimental` annotation [#19935](https://github.com/lampepfl/dotty/pull/19935)
- Implement match type amendment: extractors follow aliases and singletons [#20161](https://github.com/lampepfl/dotty/pull/20161)

## Capture Checking

- Carry and check universal capability from parents correctly [#20004](https://github.com/lampepfl/dotty/pull/20004)
- Make parameter types of context functions inferred type trees [#20155](https://github.com/lampepfl/dotty/pull/20155)
- Handle reach capabilities correctly in depedent functions [#20203](https://github.com/lampepfl/dotty/pull/20203)
- Fix the visibility check in `markFree` [#20221](https://github.com/lampepfl/dotty/pull/20221)
- Make inline proxy vals have inferred types [#20241](https://github.com/lampepfl/dotty/pull/20241)
- CC: Give more info when context function parameters leak [#20244](https://github.com/lampepfl/dotty/pull/20244)
- Plug soundness hole for reach capabilities [#20051](https://github.com/lampepfl/dotty/pull/20051)
- Tighten the screws a bit more to seal the soundness hole for reach capabilities [#20056](https://github.com/lampepfl/dotty/pull/20056)
- Drop retains annotations in inferred type trees [#20057](https://github.com/lampepfl/dotty/pull/20057)
- Allow @retains arguments to be context functions [#20232](https://github.com/lampepfl/dotty/pull/20232)
- Fix conversion of this.fld capture refs under separate compilation [#20238](https://github.com/lampepfl/dotty/pull/20238)

## Erased definitions

- Fix "Compiler crash when using CanThrow" [#20210](https://github.com/lampepfl/dotty/pull/20210)
- Only allow erased parameters in erased definitions [#19686](https://github.com/lampepfl/dotty/pull/19686)

## Initialization

- Deprecate `StandardPlugin.init` in favor of `initialize` method taking implicit Context [#20330](https://github.com/lampepfl/dotty/pull/20330)
- Fix missing changesParents in PostTyper [#20062](https://github.com/lampepfl/dotty/pull/20062)
- Special case for next field of colon colon in global init checker [#20281](https://github.com/lampepfl/dotty/pull/20281)
- Extend whitelist in global initialization checker [#20290](https://github.com/lampepfl/dotty/pull/20290)

## Macro Annotations

- Allow macro annotation to transform companion [#19677](https://github.com/lampepfl/dotty/pull/19677)
- Remove experimental `MainAnnotation`/`newMain` (replaced with `MacroAnnotation`) [#19937](https://github.com/lampepfl/dotty/pull/19937)

## Nullability

- Add flexible types to deal with Java-defined signatures under -Yexplicit-nulls [#18112](https://github.com/lampepfl/dotty/pull/18112)
- Fix #20287: Add flexible types to Quotes library [#20293](https://github.com/lampepfl/dotty/pull/20293)
- Add fromNullable to Predef for explicit nulls [#20222](https://github.com/lampepfl/dotty/pull/20222)


# Contributors

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

According to `git shortlog -sn --no-merges 3.4.2..3.5.0-RC1` these are:

```
137 Martin Odersky
51 Eugene Flesselle
32 Jamie Thompson
25 Nicolas Stucki
22 Sébastien Doeraene
18 noti0na1
16 Matt Bovel
12 Guillaume Martres
9 Paweł Marks
9 Yichen Xu
8 Jan Chyb
6 Hamza REMMAL
6 Jędrzej Rochala
6 Som Snytt
5 Fengyun Liu
5 dependabot[bot]
3 Mikołaj Fornal
2 Aviv Keller
2 EnzeXing
2 Wojciech Mazur
1 Chris Pado
1 Filip Zybała
1 Georgi Krastev
1 Hamza Remmal
1 Jisoo Park
1 Katarzyna Marek
1 Lucas Nouguier
1 Lucy Martin
1 Ola Flisbäck
1 Pascal Weisenburger
1 Quentin Bernet
1 Raphael Jolly
1 Stephane Bersier
1 Tomasz Godzik
1 Yoonjae Jeon
1 aherlihy
1 rochala
1 willerf
```

0 comments on commit 271ccc5

Please sign in to comment.