Skip to content

Commit 9519912

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

File tree

2 files changed

+199
-0
lines changed

2 files changed

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

0 commit comments

Comments
 (0)