Skip to content

Commit 98e3bbd

Browse files
committed
Add minutes for SIP meeting Juy 13th
1 parent bf69bff commit 98e3bbd

File tree

2 files changed

+207
-0
lines changed

2 files changed

+207
-0
lines changed

sips/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,7 @@ the [scala-internals](https://groups.google.com/forum/#!forum/scala-internals) m
4747
and voting/approval milestones. Please read
4848
[Submitting a SIP](./sip-submission.html) and our [SIP tutorial](./sip-tutorial.html) for
4949
more information.
50+
51+
## Minutes
52+
53+
* [SIP Meeting July 13th](./minutes/_posts/2016-07-15-sip-minutes.md)
Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
# Minutes
2+
3+
The following agenda was distributed to attendees:
4+
5+
[Discussion of the new SIP process](http://docs.scala-lang.org/sips/sip-submission.html)
6+
7+
[SIP 25 - Trait parameters]([http://docs.scala-lang.org/sips/pending/trait-parameters.html)
8+
Reviewer: Adriaan Moors
9+
10+
[SIP 26 - Unsigned Integer Data Types](https://github.com/scala/slip/pull/30)
11+
Reviewer: Martin Odersky
12+
13+
[SIP 22 - Async](http://docs.scala-lang.org/sips/pending/async.htmlhttp://docs.scala-lang.org/sips/pending/async.html)
14+
Reviewer: Eugene Burmako
15+
16+
[SIP 20 - Improved lazy val initialization](http://docs.scala-lang.org/sips/pending/improved-lazy-val-initialization.html)
17+
Reviewer: Sébastien Doeraene
18+
19+
[Trailing commas SIP](https://github.com/scala/scala.github.com/pull/533)
20+
Reviewer: Eugene Burmako
21+
22+
Quick iteration through all the SLIPs:
23+
* [Adding standard JSON AST](https://github.com/scala/slip/pull/28)
24+
* [Extensions of Futures and Promises ](https://github.com/scala/slip/issues/7)
25+
* [Implicit enrichment of Either to support Monadic bias](https://github.com/scala/slip/pull/20)
26+
* [Adding scala.io.Target](https://github.com/scala/slip/pull/2)
27+
* [SLIP 27 - Redesigning collection views](https://github.com/scala/slip/blob/master/text/0027-collection-view-redesign.md)
28+
29+
Jorge Vicente Cantero was the Process Lead and acting secretary of the meeting.
30+
31+
The following proposals were numbered:
32+
* SIP-26: Unsigned Integer Data Types
33+
* SIP-27: Trailing commas
34+
35+
(When a SIP is numbered, it can be thought of as a first-round of acceptance.
36+
That is, the committee has voted in favor of the changed being accepted into
37+
Scala in theory, so long as all potential design and implementation flaws are
38+
eventually addressed and worked through. Typically, the committee will raise a
39+
number of important concerns about the SIP that must be addressed, as next
40+
steps, ideally before the next meeting of the SIP committee.)
41+
42+
The following other proposals were discussed:
43+
* SIP-22: Async (postponed)
44+
* SIP-20: Improved lazy val initialization
45+
* SIP-25: Trait Parameters
46+
47+
Some other library proposals were evaluated and the committee gave feedback to
48+
the authors.
49+
50+
## Date, Time and Location
51+
52+
The meeting took place at 5:00pm Central European Time / 8:00am Pacific Daylight
53+
Time on Wednesday, July 13th, 2016 via Google Hangouts.
54+
55+
Minutes were taken by Jorge Vicente Cantero, acting secretary.
56+
57+
## Attendees
58+
Attendees Present:
59+
* Martin Odersky (@odersky), EPFL
60+
* Adriaan Moors (@adriaanm), Lightbend
61+
* Heather Miller (@heathermiller), Scala Center
62+
* Sébastien Doeraene (@sjrd), EPFL
63+
* Eugene Burmako (@xeno-by), EPFL
64+
* Andrew Marki (@som-snytt), independent
65+
* Josh Suereth (@jsuereth), Google
66+
* Jorge Vicente Cantero, Process Lead
67+
68+
## Proceedings
69+
### Opening Remarks
70+
As acting Process Lead, Jorge Vicente Cantero conducted the meeting, made the
71+
opening remarks, and introduced the guest Dmitry, who was present to help
72+
discuss his proposal for an improved lazy val initialization (SIP-20).
73+
74+
### Scala Improvement Proposals
75+
#### Proposal SIP-25: Trait Parameters proposed by Martin Odersky
76+
Adriaan Moors, as the assigned reviewer of this SIP, quickly introduced the
77+
proposal. The proposal helps to abstract over traits by introducing type
78+
parameters, a feature that was only possible in classes.
79+
80+
Adriaan points out that it needs a little bit more of work. He generally advises
81+
to give more details about how the proposed changes interact with other
82+
features. In concrete, he'd like to know what the modifiers mean, and what would
83+
happen if there's an implicit modifier. On a side note, he thinks that there
84+
should be some guidelines on how the proposal impacts programmers and what
85+
technical issues are addressed. He thinks that it would be great to see an
86+
implementation, as the one in Dotty. He considers this proposal is a good
87+
candidate for 2.13.
88+
89+
Martin and Heather also discuss what the role of a reviewer is. Jorge clarifies
90+
that technical discussions should take place in the meeting.
91+
92+
**Outcome**: The board agreed to schedule the next iteration of the evaluation
93+
process in 6 months, since there's no implementation yet and the authors need
94+
time to produce one.
95+
96+
#### Proposal SIP-26: Unsigned Integer Data Types by Denys Shabalin and Sébastien Doeraene
97+
Martin is the reviewer of this SIP. He's on the fence of accepting this
98+
proposal, he would prefer to see it in the platform as a library, since putting
99+
it in the core would require too much work and he's unsure if that would be a
100+
priority.
101+
102+
Sébastien, one of the authors, points out that placing it as a library defeats
103+
the purpose of the SIP (because cooperative equality would not exist), which is
104+
to allow the native platforms to benefit from it (Scala.js and Scala Native). He
105+
explains that, in order to make it a library, he would need at least two SIPs to
106+
make it interact correctly with Scala.js (the value classes formalization is not
107+
suitable for what he wants to address).
108+
109+
Dmitry, Martin and Sébastien start to discuss about the performance of other
110+
alternatives that would need to change the the representation of scala number.
111+
Adriaan and Josh agree that the proposal would be better as a library.
112+
113+
**Outcome**: The board voted; all were in favor of giving it a number. Jorge asks
114+
the authors to make a PR to the SIP website repo. The next iteration would be in
115+
September because Sébastien is on vacation in August. He needs to prepare its
116+
evaluation in September by tweaking the changes in BoxesRunTime.scala so that
117+
the performance of existing codebases does not suffer any degradation, and so
118+
that the performance of non-unsigned integer comparisons is not affected (or
119+
very little) by the unrelated addition of unsigned integers in the codebase.
120+
121+
#### Proposal SIP-22: Async proposed by Philipp Haller and Jason Zaugg
122+
Eugene Burmako does a thorough description of the SIP and describes its
123+
historical background. He roughly talks about the implementation, which uses
124+
macros, and he's impressed of its quality in the design and implementation.
125+
126+
Other languages like F#, C# and JS have something similar. There's a restriction
127+
that the functionality cannot be used inside a try catch. Eugene reveals that
128+
the authors have asked for a timeout to improve the implementation and the
129+
design. He recommends them to add more documentation as in C# and suggests to
130+
close it and wait until the authors resubmit it.
131+
132+
Jorge and Heather discuss about what are the differences between postponing and
133+
marking a SIP as dormant. The idea is that SIPs marked as dormant are the ones
134+
that have been evaluated, but there hasn’t been any activity in two months.
135+
Postponing a SIP is done when we know beforehand that some constraints need to
136+
be resolved before resuming its evaluation.
137+
138+
**Outcome**: The Process Lead postpones it until the authors want to decide to
139+
revisit the support of async/await in try/catch blocks. When that's considered,
140+
this SIP should be reopened and and it should see another round of discussion.
141+
142+
#### Proposal SIP-20: Improved lazy val initialization by Dmitry Petrashko
143+
Sebastien reviews the SIP and asks Dmitry, present in the meeting, to correct
144+
him if he's wrong. He agrees that the SIP is desirable but he's unsure about the
145+
benchmarks and which of the proposals is faster. Dmitry explains that the
146+
benchmarks are in the repo, and that in the best case the initialization doesn’t
147+
need synchronization.
148+
149+
He also recommends the author to include more documentation.
150+
151+
**Outcome**: Dmitry volunteers to provide an implementation in three months. The
152+
Process Lead schedules the next iteration by October 2016.
153+
154+
#### Proposal SIP-27: Trailing Commas
155+
Eugene Burmako, who also reviewed this recently submitted SIP, explains what the
156+
proposal addresses. The proposal seeks to introduce changes in the syntax of the
157+
language that will not error when commas are placed in concrete valid places. He
158+
makes the point that it has several benefits; for instance, diffs in github will
159+
only show one changed line when a new element is added in a list whose elements
160+
are placed in independent lines.
161+
162+
He also discusses that there are some issues with the interaction of Tuple1 and
163+
pretty printing. The proposal is minor but addresses day-to-day annoyances.
164+
Martin fears that this proposal would interfere with another important future
165+
SIP that will integrate generic programming with Scala. Adriaan doesn't like the
166+
idea. Josh proposes to unify tuples with other features of the language, like
167+
parameters lists and the apply methods.
168+
169+
Adriaan wants to wait for the proposal of how to do generics over tuples, and
170+
integrating hlists with Scala, which he thinks it’s the really important
171+
proposal.
172+
173+
**Outcome**: 2 people abstain, 3 people vote in favor of it. Josh's connectivity
174+
drops out, and he's not able to vote. The Process Lead decides to give it a
175+
number. Authors are asked to prepare for the first iteration of the evaluation
176+
process in August. This involves exploring interactions with other language
177+
features by exhaustively enumerating the locations in the grammar where trailing
178+
commas may be used.
179+
180+
### SLIPs
181+
Jorge asks the SIP committee to provide feedback to the authors to speed up the
182+
SLIP process in the future.
183+
184+
* JSON AST: No news from the last discussion in the slip repo. It's been
185+
integrated into Play and SBT server 1.0. The committee considers that it's a
186+
prime candidate for the platform.
187+
* Extensions of Futures and Promises: the committee calls for an implementation.
188+
This SLIP will be addressed by the next SLIP committee.
189+
* Either monadic bias: it was merged one day before by the Lightband team. Therefore, this SIP is both accepted and merged.
190+
* scala.io.Target: Martin proposes to delay it until the SLIP committee decides
191+
how the platform would look like. Then, they will take care of it.
192+
* Redesigning collections views: Jorge explains what Josh, who is author of the
193+
SLIP, proposes for its design:
194+
* Iterator-based API (supports join and efficient deferred operation with one time parse)
195+
* Transducer-based API (supports non-iterable collections and efficient deferred operations, but doesn’t support co-iteration, i.e. efficient join).
196+
Martin and Dmitry discuss that iterators are more powerful, and are looking forward to an implementation. Therefore, authors are asked to provide one for the first iteration in the SLIP meeting.
197+
198+
## Other business
199+
Jorge confirms that there will be a new SLIP process proposed for the middle of
200+
August.
201+
202+
## Closing remarks
203+
See you next time!

0 commit comments

Comments
 (0)