Skip to content

Commit 6d03862

Browse files
authored
Merge pull request #1600 from dwijnand/sip-minutes-2019-09
SIP minutes: 2019 November
2 parents abda7bc + 91fe958 commit 6d03862

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
---
2+
layout: sips
3+
title: SIP Meeting Minutes - November 27 2019
4+
5+
partof: minutes
6+
---
7+
8+
# Minutes
9+
10+
The following agenda was distributed to attendees:
11+
12+
1. Re-visiting what SIP Committee's role is given the Scala 2 to 3 transition
13+
2. Dotty feature freeze is coming soon - what does that mean?
14+
3. Review the "Curried varargs" SIP
15+
4. Review the "Name-based XML literals" SIP
16+
5. The priority of Dotty features the SIP Committee has to discuss
17+
18+
## Date and Location
19+
20+
The meeting took place on the 27th November 2019 at 17:00 CET via Zoom at EPFL in Lausanne, Switzerland, as well as other locations.
21+
22+
The meeting was broadcast and recorded on the Scala Process's YouTube channel, but due to technical difficulties
23+
that broadcast had to be restarted half-way through and therefore there are two videos:
24+
25+
* part 1 (16:56): <https://www.youtube.com/watch?v=jjEcYY2R9mU>
26+
* part 2 (06:43): <https://www.youtube.com/watch?v=jFjjYybY_wY>
27+
28+
Minutes were taken by Dale Wijnand.
29+
30+
## Attendees
31+
32+
* Martin Odersky ([@odersky](https://github.com/odersky)), EPFL
33+
* Darja Jovanovic ([@darjutak](https://github.com/darjutak)), Process Lead
34+
* Sébastien Doeraene ([@sjrd](https://github.com/sjrd)), Scala Center
35+
* Guillaume Martres ([@smarter](https://github.com/smarter), EPFL
36+
* Heather Miller ([@heathermiller](https://github.com/heathermiller)), CMU
37+
* Adriaan Moors ([@adriaanm](https://github.com/adriaanm)), Lightbend
38+
* Iulian Dragos ([@dragos](https://github.com/dragos)), Triplequote
39+
* Miles Sabin ([@milessabin](https://github.com/milessabin)), Independent
40+
* Lukas Rytz ([@lrytz](https://twitter.com/lrytz)), visiting from Lightbend
41+
* Dale Wijnand ([@dwijnand](https://twitter.com/dwijnand)), secretary
42+
43+
## Not present
44+
45+
* Seth Tisue ([@SethTisue](https://github.com/SethTisue)), Lightbend
46+
* Josh Suereth ([@jsuereth](https://github.com/jsuereth)), Independent
47+
48+
## Proceedings
49+
50+
### Re-visiting what SIP Committee's role is given the Scala 2 to 3 transition
51+
52+
* What happens to the current SIPs?
53+
* What is the timeline for them?
54+
* Who can make new proposals?
55+
* Which changes to the process were made in November 2018?
56+
* And which changes should be made going forward?
57+
58+
Darja presented the topic. The background is that in November 2018 the SIP Committee accepted the "Dotty team
59+
proposal of changes", which wasn't like the regular SIP proposals but is more like a large number of proposals
60+
for Scala 3. Those individual proposals still need to be individually reviewed, but doing so will take time.
61+
62+
During that time many pre-existing SIPs didn't progress in any way, some remained "open" when they should've
63+
been closed a long time ago and, more generally, the status of them and the Dotty features SIPs wasn't clear or
64+
well tracked.
65+
66+
Therefore the SIP Committee has decided to:
67+
68+
1. Make a commitment to update the state of all SIPs by March 2020;
69+
2. Change the process to introduce the concept of a "SIP Champion", which is a member of the SIP Committee that
70+
a contributor finds to progress a Pre-SIP idea into a SIP and to champion the SIP through the process
71+
72+
### Dotty feature freeze is coming soon - what does that mean?
73+
74+
Guillaume presented.
75+
76+
A month ago a thread was created on the [Contributors forum announcing that the next Dotty release][freeze] will
77+
initiate a feature freeze. What that means is that new things won't be added, instead existing changes will
78+
be refined. That doesn't mean that new SIPs can't be proposed, but it does mean that such SIPs should adjust
79+
their expectations that its very unlikely they'll be able to target Scala 3.0 and would have to wait for some
80+
future 3.x release.
81+
82+
[freeze]: https://contributors.scala-lang.org/t/preparing-for-feature-freeze/3780
83+
84+
### Discuss the priority of Dotty features the SIP Committee has to discuss
85+
86+
Darja briefly mentioned this task the Committee has, but the discussion itself deferred to expedite the later
87+
topics.
88+
89+
In order to discuss and make decisions on the features coming in Scala 3, the Committee has been looking at how
90+
to prioritise such discussions. Sebastien has started exploring the timing impacts of each change (related to
91+
how they impact rewriting books/MOOCs, impact source and TASTy compatibility) and experimenting with different
92+
logistical proposals.
93+
94+
This is still pending, but in the December SIP meeting the Committee will have features it's ready to discuss
95+
and vote upon.
96+
97+
### Review the "Curried varargs" SIP
98+
99+
Link: <https://contributors.scala-lang.org/t/pre-sip-curried-varargs/3608>
100+
101+
Sebastien presented.
102+
103+
The proposal highlighted 2 issues with the current implementation of varargs:
104+
105+
1. Arguments LUB together, such as an `Int`, a `String`, and a user's `Foo` will LUB to `Any`, this means that
106+
one cannot make use of implicit lookup to summon typeclass instances for the specific types of the arguments
107+
2. The current varargs use `Seq` which is an extra allocation that may be costly
108+
109+
The proposal is to add a builder-like interface (perhaps like a typeclass?) that avoid the type widening and the
110+
intermediate `Seq` by building instead the desired data structure.
111+
112+
Martin believes that it should be possible to implement such a proposal with Dotty's meta-programming features,
113+
specifically inline methods. This would avoid having to "burn it into the language", particularly avoid adding
114+
to the already complex aspects of parameter application.
115+
116+
Guillaume adds that that area also includes method overloading that is very complicated and already requires
117+
attention. He also adds that it might be that use cases that call for this proposals should look at Dotty's
118+
union types, as he thinks that some of them might be satisfied by having a varargs of union types.
119+
120+
In response to the "but with macros it will be slow" pushback, Guillaume invites users to check the performance
121+
of the Dotty-based implementation, and/or the union type-based solution. Additionally he and Sebastien say how
122+
making it part of the language (instead of just where the meta-programming solution is used) it would probably
123+
make the whole compiler slower for everyone.
124+
125+
### Review the "Name-based XML literals" SIP
126+
127+
Link: <https://contributors.scala-lang.org/t/pre-sip-name-based-xml-literals/2175>
128+
129+
Sebastien presented.
130+
131+
The proposal is for a way to extend XML literals, perhaps allowing alternative implementation with a somewhat
132+
similar API. In general there is a resistence to keeping XML literals in the language at all, though the
133+
front-end community has exhibited support for XML literals as it's a convenience that Scala.js brings.
134+
135+
The feedback from the Committee is (similarly to the previous SIP) to attempt to implement it using Dotty's
136+
meta-programming facilities, so a meta-programming backed string interpolator.
137+
138+
Guillaume mentions that there is an interpolator at <https://github.com/lampepfl/xml-interpolator/>, which
139+
implements all of the XML literals except for pattern matching (which just needs attention) and invites the SIP
140+
authors to adapt that to the behaviour described in their SIP.
141+
142+
### Update on the "Revised implicits" SIP
143+
144+
Guillaume gave a quick update: a new thread was created on the Contributors forum to discuss how Scala's
145+
implicits are being revised in Scala 3: <https://contributors.scala-lang.org/t/updated-proposal-revisiting-implicits/3821>
146+
147+
Because the discussion has returned to debating the naming change, he intends to split the thread so that
148+
also-important discussions around the semantics changes aren't drowned out.
149+
150+
## Next
151+
152+
The next meeting will be December 18th at 5 PM CET, but also the Committee intends to have another retreat in
153+
March 2020.

0 commit comments

Comments
 (0)