Skip to content

Commit 8810943

Browse files
authored
Merge 3.3.0 reference (#17587)
2 parents a682211 + 724340e commit 8810943

File tree

1,422 files changed

+184897
-7759
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,422 files changed

+184897
-7759
lines changed

.github/workflows/ci.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,18 @@ name: Dotty
22

33
on:
44
push:
5-
tags:
6-
- '**'
5+
## Be careful if you add or remove something here! Quoting from
6+
## <https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore>:
7+
##
8+
## > If you define only tags/tags-ignore or only branches/branches-ignore, the
9+
## > workflow won't run for events affecting the undefined Git ref. If you
10+
## > define neither tags/tags-ignore or branches/branches-ignore, the workflow
11+
## > will run for events affecting either branches or tags.
12+
##
13+
## We want the CI to run on both branches and tags, so we should either have:
14+
## - both (tags or tags-ignore) and (branches or branches-ignore),
15+
## - or neither of them.
16+
## But it's important to not have only one or the other.
717
pull_request:
818
schedule:
919
- cron: '0 3 * * *' # Every day at 3 AM

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ metals.sbt
3535
.idea_modules
3636
/.worksheet/
3737

38+
# scala-cli
39+
.scala-build
40+
3841
# Partest
3942
dotty.jar
4043
dotty-lib.jar

MAINTENANCE.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
# Issue Supervisor Role
2-
This document formally defines the _Issue Supervisor_ role. This is a repository maintenance role that is assigned to core contributors on rotating basis.
2+
3+
This document formally defines the _Issue Supervisor_ role. This is a repository maintenance role that is assigned to core contributors on a rotating basis.
34

45
## Responsibilities
5-
Issue supervisor is responsible for:
6-
- Health of the CI, nightly releases and benchmark infrastructure.
6+
7+
The issue supervisor is responsible for:
8+
9+
- The health of the CI, nightly releases and benchmark infrastructure.
710
- PRs of external contributors: assigning someone to review, or handling themselves.
811
- Triaging issues (especially new):
912
- Each issue needs to be assigned an `itype` and 1 or more `area` labels.
@@ -12,42 +15,50 @@ Issue supervisor is responsible for:
1215
- Modifying issue labels to best capture information about the issues
1316
- Attempting to reproduce the issue (or label “stat:cannot reproduce”)
1417
- Further minimizing the issue or asking the reporter of the issue to minimize it correctly (or label “stat:needs minimization”)
18+
- 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.
1519

1620
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.
1721

1822
## Assignment
19-
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.
23+
24+
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.
2025

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

23-
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.
28+
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.
2429

2530
## Prerequisites
31+
2632
An issue supervisor needs to have all the accesses and privileges required to get their job done. This might include:
33+
2734
- Admin rights in lampepfl/dotty repository
2835
- Admin rights in lampepfl/dotty-feature-requests repository
29-
- Permissions to create new repositories in lampepfl organization (needed to fork repositories for the community build)
36+
- Permission to create new repositories in lampepfl organization (needed to fork repositories for the community build)
3037
- Access to the LAMP slack to be able to ask for help with the infrastructure, triaging and such
3138

3239
## Procedures
33-
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).
40+
41+
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).
3442

3543
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.
3644

3745
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.
3846

39-
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.
47+
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.
4048

4149
## Reporting
50+
4251
At the end of their supervision period, the supervisor reports to the team during the Dotty meeting on the following points:
4352

4453
- 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.
4554
- How many new external contributors’ PRs were there and what they were about (in brief).
4655
- 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?
4756
- 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.
4857
- 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.
58+
- Issues of importance – candidates for the Future Versions milestone.
59+
60+
## Maintenance List
4961

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

5364
- Parser: @odersky
@@ -73,5 +84,5 @@ The following is the list of all the principal areas of the compiler and the cor
7384
- Vulpix: @dwijnand, @prolativ
7485
- JVM backend: @Kordyjan, (@sjrd)
7586
- Derivation & Mirrors: @bishabosha, (@dwijnand)
76-
- Linting (especially unused warnings) / Reporting UX : VirtusLab TBD?
87+
- Linting (especially unused warnings) / Reporting UX: VirtusLab TBD?
7788
- Java-compat: @Kordyjan

NOTICE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Dotty (https://dotty.epfl.ch)
2-
Copyright 2012-2020 EPFL
3-
Copyright 2012-2020 Lightbend, Inc.
2+
Copyright 2012-2023 EPFL
3+
Copyright 2012-2023 Lightbend, Inc.
44

55
Licensed under the Apache License, Version 2.0 (the "License"):
66
http://www.apache.org/licenses/LICENSE-2.0
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package dotty.tools.benchmarks.lazyvals
2+
3+
import org.openjdk.jmh.annotations.*
4+
import org.openjdk.jmh.infra.Blackhole
5+
import LazyVals.LazyIntHolder
6+
import java.util.concurrent.TimeUnit
7+
8+
@BenchmarkMode(Array(Mode.AverageTime))
9+
@Fork(2)
10+
@Threads(1)
11+
@Warmup(iterations = 5)
12+
@Measurement(iterations = 5)
13+
@OutputTimeUnit(TimeUnit.NANOSECONDS)
14+
@State(Scope.Benchmark)
15+
class InitializedAccessInt {
16+
17+
var holder: LazyIntHolder = _
18+
19+
@Setup
20+
def prepare: Unit = {
21+
holder = new LazyIntHolder
22+
holder.value
23+
}
24+
25+
@Benchmark
26+
def measureInitialized(bh: Blackhole) = {
27+
bh.consume(holder)
28+
bh.consume(holder.value)
29+
}
30+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package dotty.tools.benchmarks.lazyvals
2+
3+
import org.openjdk.jmh.annotations.*
4+
import org.openjdk.jmh.infra.Blackhole
5+
import LazyVals.ObjectHolder
6+
import java.util.concurrent.TimeUnit
7+
8+
@BenchmarkMode(Array(Mode.AverageTime))
9+
@Fork(2)
10+
@Threads(1)
11+
@Warmup(iterations = 5)
12+
@Measurement(iterations = 5)
13+
@OutputTimeUnit(TimeUnit.NANOSECONDS)
14+
@State(Scope.Benchmark)
15+
class InitializedObject {
16+
17+
@Benchmark
18+
def measureInitialized(bh: Blackhole) = {
19+
bh.consume(ObjectHolder)
20+
bh.consume(ObjectHolder.value)
21+
}
22+
}

bench-micro/src/main/scala/dotty/tools/benchmarks/lazyvals/LazyVals.scala

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,22 @@ object LazyVals {
5050
}
5151
}
5252
}
53+
54+
class LazyIntHolder {
55+
lazy val value: Int = {
56+
(System.nanoTime() % 1000).toInt
57+
}
58+
}
59+
60+
object ObjectHolder {
61+
lazy val value: String = {
62+
System.nanoTime() % 5 match {
63+
case 0 => "abc"
64+
case 1 => "def"
65+
case 2 => "ghi"
66+
case 3 => "jkl"
67+
case 4 => "mno"
68+
}
69+
}
70+
}
5371
}

0 commit comments

Comments
 (0)