-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Update Readme.md for ScalaDays #1248
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
8baa279
4e9fecf
b321c3c
7124da9
b3232de
c9be68e
f18e27b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,29 +11,73 @@ theory behind these constructors is researched in | |
[DOT](http://www.cs.uwm.edu/~boyland/fool2012/papers/fool2012_submission_3.pdf), | ||
a calculus for dependent object types. | ||
|
||
The dotty compiler is largely a new design. It takes a more functional | ||
approach than current scalac, paired with aggressive caching to | ||
achieve good performance. Some parts, in particular those that have to | ||
do with configuration and input/output are ported from the Scala | ||
compiler. The compiler is fully functional, in particular it can | ||
compile itself. But there's more work needed (and planned) on | ||
polishing rough edges, improving diagnostics, improving compilation | ||
speed, and embedding in other tools. | ||
|
||
We expect that, over time, some of the new technologies explored in | ||
this project will find their way into future versions of Scala. At | ||
present it is too early to say which ones and when. | ||
|
||
If you want to try it out, to get started have a look at | ||
####Current status: | ||
_Technology preview_: currently unsupported, may not be functionally complete, and are not suitable for deployment in production. | ||
|
||
####Is it going to be the future Scala? | ||
Yes, eventually. | ||
|
||
####Who's working on it? | ||
See [github contributors page](https://github.com/lampepfl/dotty/graphs/contributors). | ||
|
||
####What are the features that could make me consider trying it? | ||
| Feature | Status | | ||
|------------------------------------------------- |--------------------- | | ||
| Union, Intersection and Literal singleton types | Implemented | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For Literal singleton types, add a link to SIP http://docs.scala-lang.org/sips/pending/42.type.html |
||
| Fast compilation (phase fusion) | Implemented | | ||
| Working contravariant implicits | Implemented | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd say In progress since #1246 has not been merged yet and the rules are still somewhat weird as you said in #1247 (comment) |
||
| Trait parameters | Implemented | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| @Static methods and fields | Implemented | | ||
| Colored Repl | Implemented | | ||
| Sbt incremental build | Implemented | | ||
| Non-blocking lazy vals | Implemented | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe add repeated by-name parameters too: http://docs.scala-lang.org/sips/pending/repeated-byname.html |
||
| | | | ||
| Non-boxed arrays of value classes | In progress | | ||
| Auto-Specialization | [In progress](https://github.com/dotty-linker/dotty) | | ||
| Whole program optimizer | [In progress](https://github.com/dotty-linker/dotty) | | ||
| Library defined optimizations | [In progress](https://github.com/dotty-linker/dotty) | | ||
| | | | ||
| HList & HMaps\Record types | Under consideration | | ||
| Implicit functions | Under consideration | | ||
| Effects | Under consideration | | ||
| Auto-completion in repl | Under consideration | | ||
| Spec name-based patmat | Under consideration | | ||
| Multiverse equality | Under consideration | | ||
| Exhaustivity checks in pattern matching | Under consideration | | ||
There are also plethora of small details such [per-callsite @tailrec annotations](https://github.com/lampepfl/dotty/issues/1221) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "such as per-callsite" |
||
|
||
####What are the complications that I can have If I start using Dotty? | ||
Dotty can use libraries compiled by scalac 2.11, but Scala scalac can't use libraries compiled by Dotty.<br> | ||
No existential types.<br> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd say "No existential types using the |
||
No macro support yet. We have big plans here.<br> | ||
No early initializers. No scala.DelayedInit. Use trait arguments instead.<br> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In this document and in the SIP you say "trait parameters", consider using that here too instead of "trait arguments" |
||
Whole program optimizer will only work if all dependencies are compiled by Dotty.<br> | ||
|
||
|
||
####Can I write my code in a way that is going to be compatible with Scalac & Dotty? | ||
Yes, Dotty itself is a project that can be compiled by both Dotty and Scalac.<br> | ||
It's not very hard, and the biggest thing that you will likely miss is using macros. | ||
|
||
####How can I try it out? | ||
https://github.com/lampepfl/dotty/wiki/Getting-Started. | ||
Here’s example sbt project and instructions on how to set it up: https://github.com/smarter/dotty-example-project/ <br> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Here's an example sbt project" |
||
We have colored REPL :-). You can invoke it by running `dotc -repl`. | ||
|
||
Developers mailing list is https://groups.google.com/forum/#!forum/dotty-internals. | ||
####We also have: | ||
Basic support for Scala.js,<br> | ||
[Prototype](https://github.com/scala-native/scala-native/tree/topic/dotty-support) of compilation to x86 native code(Shabalin)<br> | ||
|
||
####What about scalac: | ||
Scalac is basis for stability in scala. We expect scalac & dotty to coexist for long. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Scalac is the basis", "to coexist for a long time" |
||
|
||
####Contributions are welcome! | ||
We invite you to help us build the future of Scala.<br> | ||
That's the best moment to participate, as everyone can make an impact.<br> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "This is the best moment" |
||
|
||
| ||
####SI-2712? | ||
If scalac will put it into 2.12, we’ll mimic their behaviour. But we have bigger plans for | ||
HK-types. | ||
|
||
| ||
|
||
 supports open source projects with its full-featured Java Profiler. | ||
|
||
YourKit, LLC is the creator of [YourKit Java Profiler](https://www.yourkit.com/java/profiler/index.jsp). | ||
Developers mailing list is https://groups.google.com/forum/#!forum/dotty-internals. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"and not suitable"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"may be functionally incomplete or unsuitable for production use"