Closed
Description
here is a mass of rough notes I've been accumulating. making a ticket since it's looking like I won't have time for it this week or next week
- if sbt 0.13.13 comes out before 2.12 does, maybe mention that upgrading will give you better/faster incremental compilation (it does, right?)
- it already says "This leads to significantly smaller JAR files", maybe add an example pair of before and after numbers (e.g. how much did scala-library.jar shrink?)
- "cross-building" is not mentioned in the current release notes. allowing 2.11/2.12 cross-building was a major theme of 2.12. the original 2.12 roadmap was explicit about this, so it might just be a matter of borrowing text for that. (and perhaps there is text there on other subjects to be borrowed, as well.) the 2.12 notes are for a broad audience, so we shouldn't assume they have read (and actually remember!) a roadmap we announced so long ago
- maybe mention sbt's support for cross-version building (including using
CrossVersion.partialVersion
to have different source directories?)
- maybe mention sbt's support for cross-version building (including using
- is the material on the binary-compatibility implications of the 2.12 trait encoding sufficient? I've seen this come up in the chat rooms several times, that people aren't sure what they can or can't do
- related: we might want to mention that MiMa has been updated to understand the new coding (and say what minimum version of MiMa to use)
- there is already some text about SAMs, but some additional changes were made during the RC phase so that text might need revisiting
- you're writing a library in Scala. you want it to cross compile in 2.11 and 2.12 (let's assume you don't want to use the
-Xexperimental
stuff in 2.11, and you probably shouldn't!), but also want the API to be usable from Java 8. what happens when you try to use overloads. Iulian had an example in the SAM PR (4971), there's the community build failures, etc. - Jason points out that it might be instructive to make a comparative example for calling a Java API that uses overloading, and see how Java does when calling that API from Java 8 code, and how we do.
- Sebastien found something where we need to exclude classes that have SAM trait parents, because LambdaMetaFactory will only instantiate the trait, not the class? Adriaan said there’s also an exclusion for self types. Jason: “specialization we’re excluding”
- Adriaan: "We should still mention the order of Sam conversion has changed. Also, the improved type inference for function literals passed to HO methods is noteworthy"
- you're writing a library in Scala. you want it to cross compile in 2.11 and 2.12 (let's assume you don't want to use the
- I think the notes could sell the new optimizer harder. this is a banner feature for 2.12, we should be more explicit about why that's so and why it was worth the effort (even just a few sentences might be sufficient)
- do we need to caution about the optimizer and incremental and/or separate compilation? (iirc with the default settings it's OK but with some settings you have to recompile everything?)
- tout scala-java8-compat? it isn't mentioned, people may not be aware
- Lukas blogged over the summer about "Performance of using default methods to compile Scala trait methods”, probably the notes should have some summary of what final state was reached on this. there is some text about possible decreased performance, maybe that just needs to be checked.
- release-note the special JUnit
@Test
hack? no longer necessary, as we generate forwarders unconditionally.
Metadata
Metadata
Assignees
Labels
No labels