Skip to content

Merge 3.3.0 reference #17587

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
880 commits
Select commit Hold shift + click to select a range
39e63f3
Adress some review comments and other tweaks
odersky Jan 12, 2023
8fb3c38
Make Label contravariant
odersky Jan 12, 2023
d8b98a0
Improve error message for refutable quoted patterns
nicolasstucki Jan 12, 2023
fbc8077
Make Label a final class
odersky Jan 12, 2023
a51a586
Add loops test with separate exit and continue boundaries
odersky Jan 12, 2023
38923f9
Another test
odersky Jan 12, 2023
3cfa0e9
Set reference version to 3.2.2
Kordyjan Jan 12, 2023
2833b36
Disallow constructor params from appearing in parent types for soundn…
sjrd Jan 12, 2023
ecba50d
Apply suggestions from code review
nicolasstucki Jan 12, 2023
dbb1e6c
Fix the CI not running on merge commits (#16668)
dwijnand Jan 12, 2023
769cf87
Improve error message for refutable quoted patterns (#16669)
bishabosha Jan 12, 2023
2127b89
Suppress follow-on errors for erroneous import qualifiers (#16658)
bishabosha Jan 12, 2023
861f5da
Actually test the stack size problem.
sjrd Jan 12, 2023
afeaf6e
Set reference version to 3.2.2 (#16671)
Kordyjan Jan 12, 2023
41a46fc
Improve doc
nicolasstucki Jan 12, 2023
483b1e8
Fix -Wunused:import registering constructor ("<init>") instead of its…
szymon-rd Jan 12, 2023
fc08649
Update the MiMa filters for 3.2.2
Kordyjan Jan 12, 2023
9dd4f52
optimize the cachability check
Linyxus Jan 9, 2023
e62ae12
More robust bisect script (#16594)
KacperFKorban Jan 12, 2023
6c6dc77
Handle top-level class insertion using a MutableSymbolMap
nicolasstucki Jan 12, 2023
63f6e97
Optimize extractors
odersky Jan 12, 2023
da42cf7
Drop ControlException
odersky Jan 12, 2023
2d67e6b
Track stack height differences in the back-end for Labeled Returns.
sjrd Jan 12, 2023
009d623
DropBreaks does not track stack changes anymore.
sjrd Jan 12, 2023
a517afb
Drop requirement that self types are closed (#16648)
odersky Jan 12, 2023
80e8365
Update the MiMa filters for 3.2.2 (#16672)
Kordyjan Jan 12, 2023
be10bc6
Enable returning classes from MacroAnnotations (part 3) (#16534)
smarter Jan 12, 2023
0c1b9b5
Fix test
odersky Jan 12, 2023
fdad63e
Merge pull request #24 from dotty-staging/add-errorhandling-stack-han…
odersky Jan 12, 2023
2e3c4cf
Revert "Suppress returns that cross different stack sizes."
odersky Jan 12, 2023
a90338d
Don't treat package object's <init> methods as package members (#16667)
odersky Jan 13, 2023
c4d63cc
scaladoc: delete `color-brewer.css` (#16606)
szymon-rd Jan 13, 2023
2ffab1d
Fix flags used to distinguish case accessors
PaulCoral Jan 13, 2023
54639f2
Add DiagnosticRelatedInformation to compiler's interface
prolativ Jan 13, 2023
f96b29e
Apply box adaptation when checking overrides (#16479)
odersky Jan 13, 2023
529040c
Fix false positive for named args (and other)
PaulCoral Jan 13, 2023
722acb9
Fix #16675 : `-Wunused` false positive on case class generated method…
szymon-rd Jan 13, 2023
8d2d623
REPL: Don't crash if completions throw
dwijnand Jan 13, 2023
d26bfb8
Fix registering Ident not containing a symbol
PaulCoral Jan 13, 2023
906dc04
Fix CheckUnused missed some used symbols
PaulCoral Jan 13, 2023
80d536f
Fix atoms computation of OrType
odersky Jan 14, 2023
07af300
REPL: Don't crash if completions throw (#16687)
dwijnand Jan 14, 2023
b195113
Fix atoms computation of OrType (#16697)
odersky Jan 14, 2023
3e283a7
Make sure annotations are typed in expression contexts
odersky Jan 14, 2023
4cfc06b
Simplification: Drop ExprOwner property
odersky Jan 14, 2023
ed5b119
Make sure annotations are typed in expression contexts (#16699)
odersky Jan 15, 2023
e40dbf2
Fix unbound type variables after implicit search
nicolasstucki Jan 9, 2023
83ded21
Move `Checker` from `class TreeChecker` to `object TreeChecker`
nicolasstucki Dec 21, 2022
4277d86
Add extension/conversion to GADT selection healing (#16638)
dwijnand Jan 16, 2023
49df379
Use tree checker for macro expanded trees
nicolasstucki Jan 16, 2023
aaf86b3
Remove Mode.ImplicitsEnabled from TreeChecker
nicolasstucki Jan 5, 2023
a2869dc
Detect irrefutable quoted patterns
nicolasstucki Jan 12, 2023
1f7b03c
Use tree checker in macros (#16570)
smarter Jan 16, 2023
511e771
Read argument of parent constructors in Templates lazily
odersky Jan 12, 2023
0d35860
Clean up forcing logic for lazy tree fields
odersky Jan 14, 2023
ae841eb
Dedup refactoring
odersky Jan 14, 2023
3d91233
Update docs of `WithLazyFields`
odersky Jan 16, 2023
67d6400
Fix rebase breakage
odersky Jan 16, 2023
7527594
Fix #16680 by registering `Ident` not containing a symbol (#16689)
szymon-rd Jan 16, 2023
90e7556
Fix #16682: CheckUnused missed some used symbols (#16690)
szymon-rd Jan 16, 2023
ede74c4
Add DiagnosticRelatedInformation to compiler's interface (#16677)
prolativ Jan 16, 2023
535dd89
Unpickle arguments of parent constructors in Templates lazily (#16688)
odersky Jan 16, 2023
cf8daf0
Apply suggestions from code review
odersky Jan 16, 2023
211ddb7
Deprecate NonLocalReturns object
odersky Jan 16, 2023
d99d9bf
Refine append return type (#16140)
dwijnand Jan 16, 2023
ef7e32c
Merge branch 'main' into fix/Wunused/non_miniphase_traverser
PaulCoral Jan 17, 2023
b719fe5
Add regression test
nicolasstucki Jan 17, 2023
836db8d
Throw a type error iwhen using hk-types in unions or intersections
odersky Jan 17, 2023
4cdd19b
Support inline overrides in value classes (#16523)
odersky Jan 17, 2023
1094b58
Fix test
odersky Jan 17, 2023
b1ae4bb
Fix error message
odersky Jan 17, 2023
4eaa5d9
Add regression test (#16710)
Kordyjan Jan 18, 2023
b824375
Throw a type error when using hk-types in unions or intersections (#1…
odersky Jan 18, 2023
a8f81dd
Fix test
odersky Jan 18, 2023
9337bd6
Fix the non-miniphase tree traverser (#16684)
szymon-rd Jan 18, 2023
335d18d
Add boundary break optimization tests
nicolasstucki Jan 10, 2023
3153075
Avoid timeouts in community–build-C
nicolasstucki Jan 18, 2023
6dded2c
Refactoring of break methiod calls
odersky Jan 18, 2023
ad8d3bb
Avoid timeouts in community–build-C (#16718)
odersky Jan 19, 2023
0dae27d
Handle sealed prefixes in exh checking
dwijnand Jan 5, 2023
13b8d7d
Handle sealed prefixes in exh checking (#16621)
dwijnand Jan 19, 2023
7ae48b8
copyright 2023
SethTisue Jan 19, 2023
783dc13
Detect irrefutable quoted patterns (#16674)
nicolasstucki Jan 20, 2023
de04a7d
Better benchmark and Stats infrastructure
odersky Jan 5, 2023
7e0c815
Reduce allocations for pickling
odersky Jan 5, 2023
cb40386
Reduce context creations for value class related ops
odersky Jan 5, 2023
2fbb891
Refactor context pools
odersky Jan 5, 2023
3d21427
Avoid creation of Type lists when assigning types to Apply nodes
odersky Dec 20, 2022
47f5b02
Pickling reorganizations
odersky Jan 5, 2023
8dee679
Reduce string computations
odersky Dec 22, 2022
ac95795
Avoid recomputing hot requiredMethods
odersky Dec 22, 2022
7036ed8
Don't have Diagnostic inherit from Exception
odersky Jan 5, 2023
f8e7f78
Reuse regex matcher in replaceAll calls
odersky Jan 5, 2023
e0e703a
Add specialized versions of tasty.Util.dble for common array element …
odersky Dec 22, 2022
c9a4670
Allow to reuse table of a util.{MutableHashSet,MutableHashMap}
odersky Jan 5, 2023
e459eda
Avoid some Some wrappers when accessing maps
odersky Dec 22, 2022
10359a5
Avoid unnecessary uses of `parentSyms`
odersky Dec 22, 2022
03555e8
Avoid some boxings of vars
odersky Jan 5, 2023
4e7ab60
Avoid creating large CharBuffers in LookaheadScanners
odersky Dec 22, 2022
50c1595
Avoid expensive settings lookup in `setDenot`
odersky Dec 23, 2022
9f13e56
Make `validFor` monomorphic
odersky Dec 23, 2022
84c4fe0
Cache `isType` in SymDenotations
odersky Jan 5, 2023
b28faf9
Streamline some hot compuations
odersky Jan 5, 2023
f992f7a
Inline rollbackGadtUnless in GadtConstraint
odersky Jan 5, 2023
c920896
Replace tpd.mapInline by flattenMapConserve
odersky Dec 25, 2022
bc8df3e
Optimize period equality tests
odersky Dec 25, 2022
b64b73c
Drop expensive escapeToNext
odersky Jan 5, 2023
88c84ea
Use home-brewed futures for parallel pickling
odersky Dec 26, 2022
78f1be0
Drop redundant catch and re-throw
odersky Jan 5, 2023
586c459
Revert some changes in NameBuffer
odersky Jan 5, 2023
f2caf05
Make lazy vals threadunsafe.
odersky Jan 20, 2023
fcef230
Fix bytecode test
odersky Jan 18, 2023
a17a6df
Drop `break` object in `scala.util`
odersky Jan 20, 2023
91bd5df
Drop `Label_this` and fix comments referring to it
odersky Jan 20, 2023
c3cf035
Make var private
odersky Jan 20, 2023
69b7a48
Update migration warning message
odersky Jan 20, 2023
865aa63
Some performance related changes (#16566)
odersky Jan 20, 2023
cf4591f
Introduce `boundary/break` control abstraction. (#16612)
odersky Jan 20, 2023
d6cc101
copyright 2023 (#16731)
smarter Jan 20, 2023
9de66c9
Merge branch 'main' into language-reference-stable
Kordyjan Jan 23, 2023
f6c4f62
Sync with the stable documentation branch (#16714)
Kordyjan Jan 23, 2023
93592a6
Remove badmerge in the scaladoc
Kordyjan Jan 23, 2023
1b7f23d
Add the missing permissions for scaladoc cmd script
Kordyjan Jan 23, 2023
bb2d28f
Remove badmerge in the scaladoc (#16752)
Kordyjan Jan 23, 2023
5cc4a9c
Add changelog for 3.3.0-RC1
Kordyjan Jan 23, 2023
5522929
Fix incorrect TASTy version
Kordyjan Jan 26, 2023
57a6de2
Add changelog for 3.3.0-RC2
Kordyjan Jan 26, 2023
8dbc905
Release 3.3.0-RC2
Kordyjan Jan 26, 2023
c188f1d
Added jpath check to `ClassLikeSupport` getParentsAsTreeSymbolTuples
yzia2000 Jan 24, 2023
7ee369f
Backport "Added jpath check to `ClassLikeSupport` getParentsAsTreeSym…
Kordyjan Feb 15, 2023
92c5dad
Split out immutable GadtConstraint
dwijnand Dec 30, 2022
58d0a29
Rename GadtConstraintHandling to GadtState
dwijnand Jan 24, 2023
abbb549
Avoid bidirectional GADT typebounds from fullBounds
dwijnand Feb 13, 2023
6d141f3
Drop failsafe checkNonCyclic and document GADT fullBounds change
dwijnand Feb 14, 2023
4cc0e0d
GADT: move dropping GADT symbols into foldLeft
dwijnand Feb 15, 2023
5453d5c
GADT: Use isPatternBound, ofc...
dwijnand Feb 15, 2023
ace96f7
GADT: Use =:= instead of Any/Nothing
dwijnand Feb 15, 2023
67671ef
Backport "Avoid bidirectional GADT typebounds from fullBounds" (#16945)
Kordyjan Feb 17, 2023
fad1584
Fix static lazy field holder for GraalVM
szymon-rd Feb 1, 2023
e466fa4
No need to reset JavaStatic as its removed with the amsk
szymon-rd Feb 1, 2023
ef8e855
Removing getStaticFieldOffset as it's not used anymore
szymon-rd Feb 1, 2023
2bfbe75
Revert deletion of getStaticFieldOffset for now
szymon-rd Feb 2, 2023
41cfb62
Update printing tests to have matching AST
szymon-rd Feb 3, 2023
5803809
Backport "Fix static lazy field holder for GraalVM " (#16946)
Kordyjan Feb 17, 2023
805c49f
Add support for disabling redirected output in the REPL driver for us…
vasilmkd Feb 2, 2023
b36f319
Add scaladoc documentation for `ReplDriver#redirectOutput`
vasilmkd Feb 6, 2023
ebb2eb5
Backport "Add support for disabling redirected output in the REPL dri…
Kordyjan Feb 17, 2023
ff006d0
Add missing criterion to subtype check
odersky Feb 11, 2023
a9e4da9
Backport "Add missing criterion to subtype check" (#16948)
Kordyjan Feb 17, 2023
f3347db
Avoid timeouts in community–build-C
nicolasstucki Jan 18, 2023
8562128
Add changelog for 3.3.0-RC3
Kordyjan Feb 17, 2023
b3c1c98
Release 3.3.0-RC3
Kordyjan Feb 17, 2023
014be6f
Fix HK quoted pattern type variables
nicolasstucki Feb 14, 2023
aecbfa7
Fix HK quoted pattern type variables (#16980)
Kordyjan Feb 21, 2023
f0f6baf
Fix caching issue caused by incorrect isProvisional check
smarter Feb 21, 2023
1a77625
Fix race condition in new LazyVals
szymon-rd Feb 20, 2023
4a7e92b
Do not depend on runtime lib in tests
szymon-rd Feb 20, 2023
5801262
Disable test for Scalajs
szymon-rd Feb 27, 2023
81c6d6e
Add comment describing why LazyValControlState extends Serializable
szymon-rd Feb 27, 2023
63ff068
Backport "Fix race condition in new LazyVals" (#17247)
Kordyjan Apr 14, 2023
786035e
Backport "Fix caching issue caused by incorrect isProvisional check" …
Kordyjan Apr 14, 2023
aa601a1
Fix #16822
PaulCoral Feb 15, 2023
85fa542
Register usage of symbols in non-inferred type trees in CheckUnused
KacperFKorban Feb 16, 2023
ab28b09
Traverse annotations instead of just registering
PaulCoral Feb 18, 2023
d4f8c74
Ignore parameter of accessors
PaulCoral Feb 18, 2023
49686f8
Improve override detection in CheckUnused
PaulCoral Feb 19, 2023
e03fa1b
WUnused: Fix unused warnining in synthetic symbols
szymon-rd Feb 27, 2023
606608a
Move tests
szymon-rd Feb 28, 2023
b050bda
Remove unused import
szymon-rd Feb 28, 2023
2d41b46
Fix WUnused with indents in derived code
szymon-rd Mar 13, 2023
87d9e94
Add failsafe for a case where prefixes in CheckUnused/prepareIndent f…
szymon-rd Mar 13, 2023
8bdef2f
Fix for formatting and traverse call of inlined tree in wunused
szymon-rd Mar 14, 2023
813a43b
Add test for wunused Inlined call
szymon-rd Mar 14, 2023
06acf90
WUnused: Fix for symbols with synthetic names and unused transparent …
szymon-rd Mar 7, 2023
0f6c42e
Adjust assertions in test
szymon-rd Mar 8, 2023
fbc6501
Check if import contains transparent inline in registerImport
szymon-rd Mar 10, 2023
4070dbd
Warn for synthetic using/givens with wunused
szymon-rd Mar 28, 2023
4644e5e
Wunused: only filter out non-zero span-length givens
szymon-rd Mar 28, 2023
b72eade
Skip all symbols with $ in name in Wunused
szymon-rd Mar 29, 2023
432e829
Add a failing case with named using to test Wunused:implicits
szymon-rd Mar 29, 2023
24080f1
Replace for with exists in isTransparentInline in WUNused
szymon-rd Mar 29, 2023
7cbdadf
Skip extension method params in WUnused
szymon-rd Mar 29, 2023
ac06033
Fix wunused false positive when deriving alias type
szymon-rd Mar 27, 2023
41e7418
Fix wunused for deriving alias type that has a different name
szymon-rd Apr 3, 2023
8262192
Fix test for wunused alias deriving
szymon-rd Apr 3, 2023
fd70247
Fix selecting unaliased selector in wunused
szymon-rd Apr 4, 2023
ec298fa
Dealias only conditionally when symbol is derived val type in wunused
szymon-rd Apr 10, 2023
87f8449
Fix WUnused for accessible symbols that are renamed
szymon-rd Mar 29, 2023
0d2977e
Compare simple name and handle NO_NAME case in WUnused
szymon-rd Apr 12, 2023
c6a6656
Extracted isRenamedSymbol def
szymon-rd Apr 12, 2023
79b87a0
Fix isRenamedSymbol method in WUnused
szymon-rd Apr 12, 2023
2a2a111
Fix WUnused false positive in for
szymon-rd Mar 29, 2023
fd7b962
Do not register used symbol when position doesnt exist in wunused
szymon-rd Apr 13, 2023
6356a39
Make CheckUnused run both after Typer and Inlining
szymon-rd Apr 4, 2023
774c4e9
Fix instantation of CheckUnused phase
szymon-rd Apr 13, 2023
a69b49f
Remove unnecessary logging in CheckUnused phase
szymon-rd Apr 13, 2023
7966b5c
Add test cases for macro wunused
szymon-rd Apr 13, 2023
644fee2
Apply review suggestions to WUnused PR
szymon-rd Apr 13, 2023
e369d90
Move finishAggregation to UnusedData class in CheckUnused
szymon-rd Apr 13, 2023
03dba67
WIP: Disable WUnused for params of non-private defs
szymon-rd Apr 10, 2023
7017b8e
Handle implicit params and adjust tests in WUnused
szymon-rd Apr 13, 2023
b4e5cb7
Fix tests for WUnused/disable for public defs
szymon-rd Apr 13, 2023
2af117f
Add missing test for Wunused
Kordyjan Apr 14, 2023
84458c7
Bring in #17263 to fix the tests.
szymon-rd Apr 14, 2023
ff8e9f7
Backport "Fix #16822" (#17267)
Kordyjan Apr 17, 2023
5d76f39
Backport "Register usage of symbols in non-inferred type trees in Che…
Kordyjan Apr 17, 2023
ebba1cc
Backport "Traverse annotations instead of just registering, fixes #16…
Kordyjan Apr 17, 2023
20ebba5
Backport "Ignore parameter of accessors, fixes #16955" (#17270)
Kordyjan Apr 17, 2023
942476c
Backport "Improve override detection in CheckUnused, fixes #16865" (#…
Kordyjan Apr 17, 2023
cf6da33
Backport "WUnused: Fix unused warning in synthetic symbols" (#17272)
Kordyjan Apr 17, 2023
1615cd2
Backport "Fix WUnused with idents in derived code " (#17273)
Kordyjan Apr 17, 2023
423bd1e
Backport "WUnused: Fix for symbols with synthetic names and unused tr…
Kordyjan Apr 17, 2023
ae37e68
Backport "Skip extension method params in WUnused" (#17275)
Kordyjan Apr 17, 2023
5e866e3
Backport "Fix wunused false positive when deriving alias type" (#17276)
Kordyjan Apr 17, 2023
a6eee4f
Backport "Fix WUnused for accessible symbols that are renamed" (#17277)
Kordyjan Apr 17, 2023
29bc3db
Backport "Fix WUnused false positive in for" (#17278)
Kordyjan Apr 17, 2023
c043299
Backport "Make CheckUnused run both after Typer and Inlining" (#17279)
Kordyjan Apr 17, 2023
7809f9b
Backport "Disable WUnused for params of non-private defs" (#17280)
Kordyjan Apr 17, 2023
3156fe9
Check the status of coursier download in CoursierScalaTests.scala
anatoliykmetyuk Mar 17, 2023
22e6ffe
Add changelog for 3.3.0-RC4
Kordyjan Apr 17, 2023
5990252
Release 3.3.0-RC4
Kordyjan Apr 17, 2023
40502e0
Drop network tests in requests community-build
mbovel Apr 3, 2023
72e5dd2
Fix compiler crash in WUnused
szymon-rd Apr 25, 2023
46d9c07
Change the order of checks
szymon-rd Apr 25, 2023
716b867
Wunused: Check if symbol exists before isValidMemberDef check
KacperFKorban Apr 19, 2023
12cd96e
Wunused: Include import selector bounds in unused checks
KacperFKorban Apr 20, 2023
74b0aa4
Remove experimental from Mirror#fromProductTyped
mpilquist Feb 4, 2023
a55322d
Update experimental definitions list
mpilquist Feb 4, 2023
a784926
Backport "Fix compiler crash in WUnused" (#17356)
Kordyjan Apr 26, 2023
14237d3
Backport "Wunused: Check if symbol exists before isValidMemberDef che…
Kordyjan Apr 26, 2023
d64378b
Backport "Wunused: Include import selector bounds in unused checks" (…
Kordyjan Apr 26, 2023
f079936
Backport "Remove experimental from Mirror#fromProductTyped" (#17353)
Kordyjan Apr 27, 2023
909b56c
Add changelog for 3.3.0-RC5
Kordyjan Apr 27, 2023
597144e
Release 3.3.0-RC5
Kordyjan Apr 27, 2023
3b9b83d
Patmat: Use less type variables in prefix inference
dwijnand Feb 3, 2023
752ad2f
Backport "Patmat: Use less type variables in prefix inference" (#17440)
Kordyjan May 9, 2023
9c1cdc8
Fix #17187: allow patches with same span
adpi2 Apr 28, 2023
c1028a2
Revert exact match in overlaps
adpi2 May 1, 2023
9a1e7cb
Raise a warning instead of an error for a type ascription on a patter…
prolativ May 10, 2023
16d68f6
* Preserve the more restrictive syntax for typed patterns in the lang…
prolativ May 11, 2023
4f2e819
Backport "Just warn on type ascription on a pattern" (#17477)
Kordyjan May 12, 2023
6629e13
Backport "Fix #17187: allow patches with same span" (#17476)
Kordyjan May 12, 2023
58256dd
Add changelog for 3.3.0-RC6
Kordyjan May 12, 2023
9bae88a
Release 3.3.0-RC6
Kordyjan May 12, 2023
410e5df
Set TASTy Version to 28.3.0
Kordyjan May 23, 2023
92152f4
Add changelog for 3.3.0
Kordyjan May 23, 2023
5879ff1
Release 3.3.0
Kordyjan May 23, 2023
3705c21
Merge branch 'release-3.3.0' into language-reference-stable
Kordyjan May 25, 2023
0fa1c91
Add info about 3.3 to source compat doc
Kordyjan May 29, 2023
724340e
Update docs/_docs/reference/language-versions/source-compatibility.md
Kordyjan May 30, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 12 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,18 @@ name: Dotty

on:
push:
tags:
- '**'
## Be careful if you add or remove something here! Quoting from
## <https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore>:
##
## > If you define only tags/tags-ignore or only branches/branches-ignore, the
## > workflow won't run for events affecting the undefined Git ref. If you
## > define neither tags/tags-ignore or branches/branches-ignore, the workflow
## > will run for events affecting either branches or tags.
##
## We want the CI to run on both branches and tags, so we should either have:
## - both (tags or tags-ignore) and (branches or branches-ignore),
## - or neither of them.
## But it's important to not have only one or the other.
pull_request:
schedule:
- cron: '0 3 * * *' # Every day at 3 AM
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ metals.sbt
.idea_modules
/.worksheet/

# scala-cli
.scala-build

# Partest
dotty.jar
dotty-lib.jar
Expand Down
31 changes: 21 additions & 10 deletions MAINTENANCE.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# Issue Supervisor Role
This document formally defines the _Issue Supervisor_ role. This is a repository maintenance role that is assigned to core contributors on rotating basis.

This document formally defines the _Issue Supervisor_ role. This is a repository maintenance role that is assigned to core contributors on a rotating basis.

## Responsibilities
Issue supervisor is responsible for:
- Health of the CI, nightly releases and benchmark infrastructure.

The issue supervisor is responsible for:

- The health of the CI, nightly releases and benchmark infrastructure.
- PRs of external contributors: assigning someone to review, or handling themselves.
- Triaging issues (especially new):
- Each issue needs to be assigned an `itype` and 1 or more `area` labels.
Expand All @@ -12,42 +15,50 @@ Issue supervisor is responsible for:
- Modifying issue labels to best capture information about the issues
- Attempting to reproduce the issue (or label “stat:cannot reproduce”)
- Further minimizing the issue or asking the reporter of the issue to minimize it correctly (or label “stat:needs minimization”)
- Identifying which issues are of considerable importance and bringing them to the attention of the team during the Dotty meeting, where they can be filtered and added to the [Future Versions](https://github.com/lampepfl/dotty/milestone/46) milestone.

Other core teammates are responsible for providing information to the issue supervisor in a timely manner when it is requested if they have that information.

## Assignment
Issue supervisor is appointed for 7 days and is responsible for what is specified in the “Responsibilities” section during those 7 days. Their assumption of the role starts from the Dotty Meeting on Monday and ends on the next Dotty Meeting on Monday.

The issue supervisor is appointed for 7 days and is responsible for what is specified in the “Responsibilities” section during those 7 days. Their assumption of the role starts from the Dotty Meeting on Monday and ends on the next Dotty Meeting on Monday.

During the Dotty Meeting, an issue supervisor is assigned for the current week and for the week after that.

Issue supervisor schedule is maintained in the [Issue Supervisor Statistics spreadsheet](https://docs.google.com/spreadsheets/d/19IAqNzHfJ9rsii3EsjIGwPz5BLTFJs_byGM3FprmX3E/edit?usp=sharing). So, someone who knows their availability several weeks ahead into the future can assign themselves to be an issue supervisor well ahead of time.
The issue supervisor schedule is maintained in the [Issue Supervisor Statistics spreadsheet](https://docs.google.com/spreadsheets/d/19IAqNzHfJ9rsii3EsjIGwPz5BLTFJs_byGM3FprmX3E/edit?usp=sharing). So, someone who knows their availability several weeks ahead into the future can assign themselves to be an issue supervisor well ahead of time.

## Prerequisites

An issue supervisor needs to have all the accesses and privileges required to get their job done. This might include:

- Admin rights in lampepfl/dotty repository
- Admin rights in lampepfl/dotty-feature-requests repository
- Permissions to create new repositories in lampepfl organization (needed to fork repositories for the community build)
- Permission to create new repositories in lampepfl organization (needed to fork repositories for the community build)
- Access to the LAMP slack to be able to ask for help with the infrastructure, triaging and such

## Procedures
To ensure proper health of the infrastructure, the supervisor regularly monitors its proper operation. If a malfunction is detected, the supervisor's job is to ensure that someone is working on it (or solve it on their own).

To ensure the proper health of the infrastructure, the supervisor regularly monitors its proper operation. If a malfunction is detected, the supervisor's job is to ensure that someone is working on it (or solve it on their own).

If it is unclear what area an issue belongs to, the supervisor asks for advice from other team members on Slack or GitHub. If, after asking for advice, it turns out that nobody in the team knows how to classify it, the issue must be classified with a “stat:needs triage” label.

If it is unclear who should review an external PR, the supervisor asks for advice from the rest of the core team. If after asking for advice, it is still unclear who should do it, the reviewer for such a PR will be decided at the next Dotty meeting.

In general, if anything else is unclear for proper fulfillment of responsibilities, the supervisor must proactively seek advice from other team members on Slack or other channels.
In general, if anything else is unclear for the proper fulfillment of responsibilities, the supervisor must proactively seek advice from other team members on Slack or other channels.

## Reporting

At the end of their supervision period, the supervisor reports to the team during the Dotty meeting on the following points:

- Whether there were any incidents with the CI, nightlies and benchmarks, how they were resolved and what steps were taken to prevent them from happening in the future.
- How many new external contributors’ PRs were there and what they were about (in brief).
- How many new issues were opened during their supervision period? Were there any areas that got a lot of issues? How many regressions from a prior Scala 3 release were there? Which were designated for an MSc project or an Issue Spree?
- If new labels were created or old ones were removed, or there is any other feedback on how to improve the issue supervision, mention that.
- Unassigned PRs and issues that the team failed to classify: bring them one by one so that the team can make a decision on them.
- Issues of importance – candidates for the Future Versions milestone.

## Maintenance List

# Maintenance List
The following is the list of all the principal areas of the compiler and the core team members who are responsible for their maintenance:

- Parser: @odersky
Expand All @@ -73,5 +84,5 @@ The following is the list of all the principal areas of the compiler and the cor
- Vulpix: @dwijnand, @prolativ
- JVM backend: @Kordyjan, (@sjrd)
- Derivation & Mirrors: @bishabosha, (@dwijnand)
- Linting (especially unused warnings) / Reporting UX : VirtusLab TBD?
- Linting (especially unused warnings) / Reporting UX: VirtusLab TBD?
- Java-compat: @Kordyjan
4 changes: 2 additions & 2 deletions NOTICE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Dotty (https://dotty.epfl.ch)
Copyright 2012-2020 EPFL
Copyright 2012-2020 Lightbend, Inc.
Copyright 2012-2023 EPFL
Copyright 2012-2023 Lightbend, Inc.

Licensed under the Apache License, Version 2.0 (the "License"):
http://www.apache.org/licenses/LICENSE-2.0
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package dotty.tools.benchmarks.lazyvals

import org.openjdk.jmh.annotations.*
import org.openjdk.jmh.infra.Blackhole
import LazyVals.LazyIntHolder
import java.util.concurrent.TimeUnit

@BenchmarkMode(Array(Mode.AverageTime))
@Fork(2)
@Threads(1)
@Warmup(iterations = 5)
@Measurement(iterations = 5)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@State(Scope.Benchmark)
class InitializedAccessInt {

var holder: LazyIntHolder = _

@Setup
def prepare: Unit = {
holder = new LazyIntHolder
holder.value
}

@Benchmark
def measureInitialized(bh: Blackhole) = {
bh.consume(holder)
bh.consume(holder.value)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package dotty.tools.benchmarks.lazyvals

import org.openjdk.jmh.annotations.*
import org.openjdk.jmh.infra.Blackhole
import LazyVals.ObjectHolder
import java.util.concurrent.TimeUnit

@BenchmarkMode(Array(Mode.AverageTime))
@Fork(2)
@Threads(1)
@Warmup(iterations = 5)
@Measurement(iterations = 5)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@State(Scope.Benchmark)
class InitializedObject {

@Benchmark
def measureInitialized(bh: Blackhole) = {
bh.consume(ObjectHolder)
bh.consume(ObjectHolder.value)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,22 @@ object LazyVals {
}
}
}

class LazyIntHolder {
lazy val value: Int = {
(System.nanoTime() % 1000).toInt
}
}

object ObjectHolder {
lazy val value: String = {
System.nanoTime() % 5 match {
case 0 => "abc"
case 1 => "def"
case 2 => "ghi"
case 3 => "jkl"
case 4 => "mno"
}
}
}
}
Loading