Skip to content

Commit 6817376

Browse files
committed
Merge pull request #358 from hamishdickson/nov-2015-sip-slip-notes
create nov slip meeting notes
2 parents eb23d4a + 9be7d9f commit 6817376

File tree

1 file changed

+288
-0
lines changed

1 file changed

+288
-0
lines changed
Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
---
2+
layout: blog
3+
post-type: blog
4+
by: Hamish Dickson
5+
title: Minutes from Nov 2015 SIP/SLIP Meeting
6+
---
7+
8+
# SIP/SLIP meeting, November 2015
9+
10+
[A video recording of this meeting is available](https://www.youtube.com/watch?v=RJAwDhB3Vr8).
11+
12+
# Welcomes and apologies
13+
Today we have [@dickwall](http://github.com/dickwall), [@sjrd](http://github.com/sjrd), [@SethTisue](http://github.com/SethTisue), [@heathermiller](http://github.com/heathermiller), [@non](http://github.com/non) and [@odersky](http://github.com/odersky).
14+
15+
[@jsuereth](http://github.com/jsuereth) is unable to make it.
16+
17+
# November milestone issues
18+
19+
## Adding scala.io.Target
20+
Link to SLIP: [https://github.com/scala/slip/pull/2](https://github.com/scala/slip/pull/2)
21+
22+
Notes:
23+
24+
- nothing has changed on this one, [@dickwall](http://github.com/dickwall) suggests hibernate tag
25+
- believe this has been replaced/depricated by the larger IO library discussion
26+
27+
## Unsigned integer data types
28+
Link to SLIP: [https://github.com/scala/slip/pull/30](https://github.com/scala/slip/pull/30)
29+
30+
Owner: [@sjrd](http://github.com/sjrd)
31+
32+
Notes:
33+
34+
[@sjrd](http://github.com/sjrd) covers the idea and motivation:
35+
36+
- the general idea is to introduce 4 new data types corresponding to the unsigned integers
37+
- motivation is mainly coming from Scala.js and the hope is that this will resolve some Scala.js weirdness along with the fact that there is currently no way to represent a type of value unsigned integer from javascript point of view
38+
39+
[@dickwall](http://github.com/dickwall) asks what the size of the implementation will be. [@sjrd](http://github.com/sjrd) has two approaches at the moment:
40+
41+
One is to limit compiler changes as much as possible
42+
43+
- this would lead to a "one line" change
44+
- the change would also prevent optimization where things are boxed at runtime (which is very close to the compiler), all other changes are library based
45+
- main drawback is performance for equality is impacted. For the simple implementation so far investigated, it's about a 3 x hit on performance [@odersky](http://github.com/odersky) thinks that's a show stopper, but [@sjrd](http://github.com/sjrd) points out that they are still working on this
46+
- problem is Scala Number is a class, AnyVals can't extend classes, which is why we have to mangle with boxes at runtime
47+
48+
The second option is to change the compiler
49+
50+
Actions:
51+
52+
- [@dickwall](http://github.com/dickwall) put this into public review for a month - let people comment on the SLIP/add suggestions
53+
- [@dickwall](http://github.com/dickwall) will create a tag for public review and add it to this SLIP
54+
55+
56+
## Implicits in for comprehensions/pattern matches SIP tracking
57+
Link to SLIP: [https://github.com/scala/slip/issues/6](https://github.com/scala/slip/issues/6)
58+
59+
Notes:
60+
61+
- [@som-snytt](http://github.com/som-snytt) has an implementation for this now, so good progress
62+
- hibernating tag removed
63+
64+
Next steps:
65+
66+
[@SethTisue](http://github.com/SethTisue) update:
67+
68+
- [@som-snytt](http://github.com/som-snytt) has code that looks like it works and does what this SLIP says it should
69+
- the next question is is this good enough? Does this need to be taken further? The issue is that now implicits can behave differently in for comprehensions than outside. The committee are concerned about corner cases and would like Scala's features to be consistent
70+
- it's decided that this needs to be extended to a general pattern, and [@odersky](http://github.com/odersky) is keen on that work being done
71+
- [@SethTisue](http://github.com/SethTisue) doesn't know what the likelihood of [@som-snytt](http://github.com/som-snytt) taking the rest of this work on - the for comprehension was the only version that he has time for. If he doesn't have time, then hopefully the community will be able to help
72+
73+
Open question:
74+
75+
- [@odersky](http://github.com/odersky)in Dotty, want to enforce that every implicit has an explicitly given type because it's very confusing that implicits get lost due to the order of local type inference
76+
- how will that work in a for? The natural thing would be for an implicit not to have a result type.. will we have to enforce that?
77+
78+
Actions:
79+
80+
- [@SethTisue](http://github.com/SethTisue) to post instructions on the SLIP PR on how to use a specific Scala SNAPSHOT so people can try out the current implementation
81+
82+
83+
## Implicit enrichment of `scala.util.Either` to support monadic bias
84+
Link to SLIP: [https://github.com/scala/slip/pull/20](https://github.com/scala/slip/pull/20)
85+
86+
Notes:
87+
88+
- The way we left this from last time, people generally didn't want this, but [@swaldman](https://github.com/swaldman) has gone ahead and provided a proposal for this
89+
- [@SethTisue](http://github.com/SethTisue) should consider this SLIP in the context of other SLIPs going on at the moment
90+
91+
Actions:
92+
93+
- [@swaldman](https://github.com/swaldman) to co-ordinate this with other SLIPs
94+
95+
## Collections overhaul
96+
Link to SLIP: [https://github.com/scala/slip/issues/27](https://github.com/scala/slip/issues/27)
97+
98+
Notes:
99+
100+
- not much activity this month
101+
- active, hold fire until next meeting
102+
103+
## scala-parser-combinators vs fastparse
104+
Link to SLIP: [https://github.com/scala/slip/issues/24](https://github.com/scala/slip/issues/24)
105+
106+
Notes:
107+
108+
- nothing has happened, no updates here
109+
- [@SethTisue](http://github.com/SethTisue) impression from [@lihaoyi](https://github.com/lihaoyi) is that he's ok with FastParse going into the standard module, but he probably doesn't have the time
110+
- [@odersky](http://github.com/odersky) agrees we're blocked until someone can do this really
111+
112+
## SLIP 27 Tracking
113+
Link to SLIP: [https://github.com/scala/slip/issues/23](https://github.com/scala/slip/issues/23)
114+
115+
Notes:
116+
117+
- @jsuereth is out for this meeting - he is really the one that can update us on this issue
118+
- hold this until next month
119+
- this issue is linked to the collection overhaul and it needs to be decided if this should be done separately or if it should be rolled into a larger change
120+
121+
## Scala IO fix-up/overhaul
122+
Link to SLIP: [https://github.com/scala/slip/issues/19](https://github.com/scala/slip/issues/19)
123+
124+
Notes:
125+
126+
- calmed down a bit here, not much has happened
127+
- [@dickwall](http://github.com/dickwall) is nearly done with his blog post, discussed in the last meeting
128+
- not ready for hibernate just yet
129+
130+
## Establish a fair survey mechanism for SLIPs?
131+
Link to SLIP: [https://github.com/scala/slip/issues/29](https://github.com/scala/slip/issues/29)
132+
133+
Notes:
134+
135+
- this came from a large SLIP discussion about the JSON AST (see below), with no obvious outcome other than: no one wants a survey mechanism that is too simplistic
136+
137+
- [@dickwall](http://github.com/dickwall) suggests we close this SLIP, [@non](http://github.com/non) agrees pointing out that creating the proposal was the right thing to do
138+
139+
[@odersky](http://github.com/odersky) talks about how Haskell deals with this issue and suggests we adopt parts of that for Scala:
140+
141+
- if something is proposed to the Haskell platform, then everybody who has a module in the platform can vote on that
142+
- we can have a more restrictive model than this, where you have core committers who decide what goes in there and they are the power brokers
143+
- alternative is to have a more general system where everybody who contributes to the system can vote (that's what Haskell does)
144+
- [@odersky](http://github.com/odersky) thinks people should be at least committers to vote
145+
146+
[@dickwall](http://github.com/dickwall) closes issue, but happy for it to be reopened as and when it's needed
147+
148+
## Gather, list, contact interested parties for an Either/Or/Xor/Validation etc SLIP and possible expert group
149+
Link to SLIP: [https://github.com/scala/slip/issues/5](https://github.com/scala/slip/issues/5)
150+
151+
Notes:
152+
153+
- [@non](http://github.com/non) no update on this, know people are to do research on this, but it hasn't happened yet (people get busy)
154+
- not given hibernated tag
155+
156+
## SIP: Auto-uncurry n-ary functions
157+
158+
There is no SIP tracking issue as yet, but information can be found here: [https://github.com/lampepfl/dotty/issues/897](https://github.com/lampepfl/dotty/issues/897)
159+
160+
No issue created as yet, but [@odersky](http://github.com/odersky) will create one if needed
161+
162+
## SIP for supporting named type arguments and partial type argument lists
163+
Link to SLIP: [https://github.com/scala/scala.github.com/pull/456](https://github.com/scala/scala.github.com/pull/456)
164+
165+
Notes:
166+
167+
- most of the committee hasn't read this
168+
- [@dickwall](http://github.com/dickwall) suggests it should go out for public review, [@SethTisue](http://github.com/SethTisue) points out that the committee should read it first and then decide if that's a good idea (this is agreed)
169+
170+
Homework:
171+
172+
- SLIP committee reads the proposal
173+
- review in December SLIP meeting
174+
175+
Actions:
176+
177+
- [@heathermiller](http://github.com/heathermiller) points out that there are some formatting issues. Can the author fix these?
178+
179+
180+
# JSON AST, The Scala standard library and the SLIP process
181+
182+
[A SLIP proposing a standard JSON AST](https://github.com/scala/slip/pull/28) deviated quickly from the purpose of the SLIP and started a long discussion about what should and should not be in a Scala standard library. This and other discussions seem to really stem from the fact that it isn't clear what should go where in the Scala ecosystem.
183+
184+
[@odersky](http://github.com/odersky) has since created a document on this topic called ["What should go into the standard library"](https://docs.google.com/document/d/1XBUnQ4kM4QtxIXGerP1fLbVBcVrlx0YYpybeQpmVY0w/edit?usp=sharing) which proposes a new structure for Scala and it's libraries. [@odersky](http://github.com/odersky) would like people to comment on the document using [Gitter](https://gitter.im/scala/slip).
185+
186+
The document proposes a solution similar to Haskell:
187+
188+
- a "core": which consists only what the compiler needs and not more ([@odersky](http://github.com/odersky) thinks for Scala this should be explained slightly)
189+
- a "platform": can vary and be much bigger. The platform would be maintained by a different set of people from the core (and have it's own committee), it would be handled by the people who contribute modules to the platform
190+
191+
[@odersky](http://github.com/odersky) thinks this would be a good model for us as well - the SLIP/SIP committee would look after the core and language, leave the platform to those who work on the platform. The SLIP committee would probably need to jumpstart the platform process in the beginning, but would like to hand over it's running to the community as soon as possible
192+
193+
Conversation over the proposal:
194+
195+
- [@dickwall](http://github.com/dickwall) points out there is scope to have the "EPFL Scala platform" as well as other platforms, including more functional ones
196+
- suggests we borrow from Ubuntu model with "umbrella dependencies" that you bring in letting you group things. Haskell has this too - where you can use different platforms
197+
- idea behind the SLIP process is was to get library developers to work together, not to work on things just for the standard library. It sounds like this process would achieve that
198+
- users would also know they are going to get a certain quality of library
199+
200+
[@non](http://github.com/non) good vision, but questions/comments:
201+
202+
- core is very large, bringing it down would be very hard to migrate things out. Think we are a long way from being able to do this (although that doesn't mean we shouldn't aim for it)
203+
- likes the idea of a platform, but the thing that's hard is the Scala namespace... the idea that the platform can have some stuff in the Scala namespace and some stuff that's not, that's a challenge
204+
- The JSON AST discussions raised a good question: should we create a shared platform library and make it good, or should we create a good library and make that a platform library later? People had good points for both sides of this argument
205+
- once you say something is in the Scala namespace, then you're saying it's going to be the thing because it's been blessed in some way. We say there is one platform, but if there are things in another namespace (eg Akka) those have a fundamentally different status than something in Scala namespace
206+
- typically (eg in Python), maintainers maintain their module (not everything) make micro decisions about that module, but have larger committee who decides what's in or out or when there is going to be a new version or there is a difference of opinion they deal with that
207+
- does [@odersky](http://github.com/odersky) see it like that? Would there be a gatekeeper - if so will that keep this from taking off?
208+
209+
[@dickwall](http://github.com/dickwall):
210+
211+
- we have to be able to trust that the user can find a high quality implementation of a library
212+
- [@dickwall](http://github.com/dickwall) points out that even he sometimes has problems finding libraries sometimes
213+
- [@dickwall](http://github.com/dickwall)points out that if something is in the Scala namespace, it's rightly or wrongly considered to have some elevated level of quality beyond "some random thing that I've put together"
214+
215+
216+
[@odersky](http://github.com/odersky) discovery is important, but lets not discuss that now, concentrate on Scala namespace and Scala platform
217+
218+
[@dickwall](http://github.com/dickwall) is there a place for high quality libraries to live? (not SLIP)
219+
220+
- [@odersky](http://github.com/odersky) thinks this should be left to the community
221+
- [@odersky](http://github.com/odersky) for the Scala namespace/platform one answer would be is that's a question for the platform team has to decide - to what degree they want to leverage the Scala namespace
222+
223+
[@odersky](http://github.com/odersky) Scala namespace is most useful when it's not very big and is important for common standards
224+
225+
- for example it was not good to continue with several versions of Futures, instead putting a standard version in the Scala namespace made sense, since it's not very big and should be a standard
226+
- what should and should not be in the Scala namespace should be a discussion and not a hard and fast set of rules.
227+
228+
Splitting out core:
229+
230+
- [@odersky](http://github.com/odersky) thinks we should appeal to the community to help, since even Typesafe can't do all of this on it's own
231+
- [@SethTisue](http://github.com/SethTisue) splitting the library up was already on Typesafe's plate for Scala 2.13. Could use help from the community, since disentangling the compiler from everything else involves a lot of work
232+
- [@dickwall](http://github.com/dickwall) thinks this should be tracked through the SIP/SLIP site - SIP/SLIPs are much more than adding new things to the language
233+
234+
235+
236+
[@sjrd](http://github.com/sjrd):
237+
- there is a contradiction saying platform maintainers should decide what goes into the Scala namespace and the wish to have several platforms
238+
- if you want the best part to be something different and you have Several groups of people organizing platforms, everyone in these groups will decide what to put in "their" Scala namespace and that's not the point of a namespace
239+
- [@heathermiller](http://github.com/heathermiller) assume other platforms (other than the Scala.org platform) would have to use another namespace
240+
- [@odersky](http://github.com/odersky) Scala namespace really just another module in the platform that exits to be general and a common base
241+
242+
Actions:
243+
244+
- [@dickwall](http://github.com/dickwall) create new issue to track this: https://github.com/scala/slip/issues/31
245+
- The community should read [@odersky](http://github.com/odersky)'s document and let the SLIP know their thoughts/questions/comments
246+
247+
## ... so what about JSON AST question/discussion
248+
Link to SLIP: [https://github.com/scala/slip/pull/28](https://github.com/scala/slip/pull/28)
249+
250+
Notes:
251+
252+
- [@SethTisue](http://github.com/SethTisue) from the SLIP meeting point of view, shall we give it a number and essentially encourage this being discussed?
253+
- [@dickwall](http://github.com/dickwall) points out that this shouldn't have a SLIP number as yet (some misunderstanding there on the SLIP discussion)
254+
255+
- note, there isn't an implementation of this yet
256+
257+
258+
- [@non](http://github.com/non) we can all agree this is interesting enough/there has been enough debate for this to be given a SLIP number
259+
- [@dickwall](http://github.com/dickwall) given number 28, but won't be accepted as a SLIP until some conclusion can be reached on where it's position is
260+
261+
people think this is a good idea, but it would be a platform library change in the new set up
262+
263+
From the SLIP discussion, there seem to be 3 different ideas/wants for this
264+
265+
- to create something for JSON like what Python has: something dead simple and you can use it to parse JSON without thinking
266+
- a common AST for inner-op, for example the Spray people liked that (original idea for SLIP)
267+
- a really high quality JSON parsing in the standard library (all edge cases etc)
268+
269+
a discussion needs to happen around that
270+
271+
Also, should this go into the Scala namespace?
272+
273+
[@SethTisue](http://github.com/SethTisue) points out that part the reason the reaction of this was hard to gage was it wasn't clear if people realized this wasn't for core (it's not).
274+
275+
[@heathermiller](http://github.com/heathermiller) even we are confused about what is and isn't core
276+
277+
[@odersky](http://github.com/odersky) suggests for the issue of "bless and then make good" vs "good and then bless" we could adopt a package alias to bless things and bring them into the Scala namespace and solve the naming problem
278+
279+
Actions:
280+
281+
- SLIP give a number (28)
282+
283+
284+
# AOB
285+
- Sadly, [@dickwall](http://github.com/dickwall) is to step aside from the committee meetings but will continue to help with some of the process work. This is [@dickwall](http://github.com/dickwall)'s last committee meeting
286+
- [@SethTisue](http://github.com/SethTisue) will run the Hangout part of the committee meetings
287+
- all agree [@dickwall](http://github.com/dickwall) has done a great job and thank him
288+
- [@odersky](http://github.com/odersky) how do we find a new moderator? Suggests they email the other SLIP members to see if they can find a new moderator/find volunteers

0 commit comments

Comments
 (0)