Skip to content

Commit 4cf9faf

Browse files
committed
Add minutes for the SIP meeting in October 2016
1 parent 7469348 commit 4cf9faf

File tree

1 file changed

+173
-0
lines changed

1 file changed

+173
-0
lines changed
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
---
2+
layout: sip-landing
3+
title: SIP Meeting Minutes - 25th October 2016
4+
---
5+
6+
# Minutes
7+
8+
The following agenda was distributed to attendees:
9+
10+
| Topic | Reviewer |
11+
| --- | --- |
12+
| Discussion of the voting system | N/A |
13+
| [SIP-20: Improved Lazy Val Initialization](http://docs.scala-lang.org/sips/pending/improved-lazy-val-initialization.html) | Sébastien Doeraene |
14+
| [SIP-27: Trailing commas](https://github.com/scala/scala.github.com/pull/533#issuecomment-232959066) | Eugene Burmako |
15+
16+
Jorge Vicente Cantero was the Process Lead and acting secretary of the meeting.
17+
18+
* **Decided to reaccept for review**: SIP-27: Trailing commas
19+
* **Under review**: SIP-20: Improved Lazy Val Initialization
20+
21+
## Date, Time and Location
22+
23+
The meeting took place at 5:00pm Central European Time / 8:00am Pacific Daylight
24+
Time on Tuesday, October 25th, 2016 via Google Hangouts.
25+
26+
Minutes were taken by Jorge Vicente Cantero, acting secretary.
27+
28+
## Attendees
29+
30+
Attendees Present:
31+
32+
* Martin Odersky ([@odersky](https://github.com/odersky)), EPFL
33+
* Seth Tisue ([@SethTisue](https://github.com/SethTisue)), EPFL
34+
* Iulian Dragos ([@dragos](https://github.com/dragos)), Independent
35+
* Heather Miller ([@heathermiller](https://github.com/heathermiller)), Scala Center
36+
* Sébastien Doeraene ([@sjrd](https://github.com/sjrd)), EPFL
37+
* Eugene Burmako ([@xeno-by](https://github.com/xeno-by)), EPFL
38+
* Jorge Vicente Cantero ([@jvican](https://github.com/jvican)), Process Lead
39+
* Adriaan Moors ([@adriaanm](https://github.com/adriaanm)), Lightbend
40+
41+
## Apologies
42+
43+
* Josh Suereth ([@jsuereth](https://github.com/jsuereth)), Google
44+
45+
## Proceedings
46+
### Opening Remarks
47+
48+
After some controversy sprung by the [latest SIP-27
49+
vote](https://github.com/scala/scala-lang/pull/477), the SIP Process Lead
50+
cancelled the vote on the SIP-27: Trailing Commas, and invited the Committee to
51+
discuss new voting rules to help clarify the process voting system.
52+
53+
The issue was caused by a legal void on the rounding of the 70% rule.
54+
Traditionally, votes are not rounded up. However, the SIP Process Lead
55+
took the decision to round up the SIP-27 vote percentage, which was 66%.
56+
This decision was taken in the best spirit of the rule, which was only introduced
57+
to ensure that simple majorities (50%) are not enough for accepting a proposal.
58+
59+
Before the meeting, the SIP Process Lead shared this email with all the
60+
Committee members:
61+
62+
> The majority-plus-two rule sets a concrete threshold and fits the spirit of
63+
> the rule (not having simple majority, but a
64+
> [supermajority](https://en.wikipedia.org/wiki/Supermajority)). The 70% rule is
65+
> too strict, especially for committees that are not big, as ours. After some
66+
> research, we can choose the [two-thirds
67+
> rule](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) used in a
68+
> lot of political parties, parliaments, boards and committees.
69+
70+
### Deciding the voting system
71+
72+
Sébastien starts the discussion pointing out that he would like to have a simple
73+
percentage, without any rounding. Heather argues that this percentage changes
74+
depending on the number of the present Committee Members. Seth comments that
75+
it has been proposed in several online channels that all the Committee members
76+
should vote, even if they cannot attend the meeting. All the Committee agrees on
77+
this, but the main consequence is that the voting period is not predictable
78+
anymore, since there's not a fixed deadline to vote. Martin proposes to choose
79+
this fixed deadline case-by-case.
80+
81+
Martin proposes that there's a meta rule to only accept a proposal if 50% of
82+
all the Committee members vote for it, and then to have another percentage on
83+
the actual vote. Seth, Eugene and Heather don't like this idea. Heather brings
84+
up the issue of abstentions, should they still be considered as no's even if
85+
people are on vacation or cannot vote?. Adriaan says this is a fair concern, and
86+
thinks that there should be a fixed deadline for voting.
87+
88+
All the Committee agrees that with the new rules the Committee wouldn't vote
89+
publicly, because Committee members can notify their vote after the meeting and
90+
before the fixed deadline.
91+
92+
Martin proposes to keep the old rules, the 70% percentage rule. Jorge proposes
93+
to have simpler and more predictable rules, and replace 70% with the two-thirds
94+
rule. Martin comes back to the abstentions point: he doesn't want them to be
95+
considered as no, because with the current rules Committee members could block
96+
the whole decision process. Some Committee members point out that this wouldn't
97+
happen because then the quorum wouldn't be reached. The discussion shifts
98+
towards the quorum point: is it necessary anymore? Heather and Adriaan say that
99+
it is, because it ensures that a reasonable number of Committee members meet to
100+
discuss proposals and convince each other about the pros and cons. All the
101+
Committee finally decides to not consider abstentions as no's. Adriaan, however,
102+
suggests that we should penalize people that abstain too often.
103+
104+
Another system proposed by Martin helps survive the abstention issue mentioned
105+
before. For a proposal to pass, at least 50% of all the Committee
106+
and two-thirds of all the people voting (not counting abstentions) must accept
107+
it. The quorum rule is kept. After some discussion, the Committee unanimously
108+
votes in favor of the new rules.
109+
110+
### Discussion of SIP-27: Trailing Commas
111+
112+
Eugene describes what happened in the last meeting. Martin asks if there is a
113+
concrete proposal. Jorge says that he thinks that Dale would push for the new
114+
line specialized case. Martin proposes to push for a more concrete proposal
115+
because the specification cannot be so open-ended to properly analyze the
116+
consequences of the suggested changes.
117+
118+
Seth and Adriaan voice their opinions on trailing commas again, they don't agree
119+
this is a problem that should be solved in the language. Martin changes his view
120+
on the subject, and provided that the proposal does no harm to the syntax of the
121+
language and doesn't cause problems, he would accept the change. He also says
122+
that it wouldn't be good to contradict last month's vote on the proposal.
123+
Heather says that she's in favor of trailing commas because makes beginners be
124+
less confused by the syntax and help people get started with the language.
125+
Iulian doesn't like the specialized version, he would prefer a general version.
126+
127+
**Outcome**: All the Committee decides to vote on accepting the proposal again for a final
128+
review with a clear specification of the changes. Seth and Adriaan vote against,
129+
the rest of the Committee except Josh vote in favor of it. According to our new
130+
rules, Josh gets to decide whether the proposal will be readmitted for review or
131+
cancelled (**NOTE**: Josh votes in favor of trailing commas one week after the
132+
meeting). Trailing commas will be reviewed in November.
133+
134+
### Discussion of SIP-20: Improved Lazy Val Initialization
135+
136+
Sébastien comments the changes that Dmitry has introduced to the proposal.
137+
Several new schemes have been added to the proposal based on his experience in
138+
Dotty, in which the championed scheme is already implemented.
139+
140+
There are no clear winner in the case of local lazy vals, but there seems to be
141+
two clear candidates for the non-local lazy vals (B4-general and B6).
142+
Both are faster than the existing implementation in the contended case but B4
143+
general is 4x and B6 is only 2x. However, for the uncontended case B4 general is
144+
30% slower than the existing implementation, while B6 is on par, up to +-5%.
145+
Dmitry recommends the B6 case because it's a *pure* win. Memory-wise, B6 would
146+
have a smaller memory footprint.
147+
148+
Sébastien comments on the increase of the bytecode for the getter of the lazy
149+
val, which is 4x bigger. This could make a difference, although the benchmarks
150+
do not show any negative impact of it (probably because the previous
151+
implementation was bigger than the limits set by the JVM to benefit from
152+
code inlining).
153+
154+
Jorge comments that there's no implementation of this proposal for scalac. This
155+
means that someone should step up and provide such implementation, because
156+
Dmitry does not have time for it. Adriaan comments on the fact that B6 uses
157+
`sun.misc.Unsafe`, which he prefers that the compiler doesn't depend on to run
158+
in other platforms that don't allow it (Google App Engine). Sébastien highlights
159+
that the proposal could use var handles, which are planned to be shipped on Java
160+
9.
161+
162+
Heather proposes to mark this proposal as dormant, since it's lacking an
163+
implementation. She wants to let other people claim its ownership and provide an
164+
implementation if they care about this issue.
165+
166+
**Outcome**: The Committee agrees to mark the proposal as dormant and let
167+
someone pick it up and provide an implementation. Ideally, this implementation
168+
should run in Java 8 and don't depend on var handles. The SIP Process Lead will
169+
wait some time to receive another candidate from the current author, Dmitry. If
170+
he doesn't propose anything, the SIP will be marked as dormant.
171+
172+
## Closing remarks
173+
See you next time!

0 commit comments

Comments
 (0)