|
1 |
| -dotty |
| 1 | +Dotty |
2 | 2 | =====
|
3 |
| - |
4 | 3 | [](https://gitter.im/lampepfl/dotty?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
5 | 4 |
|
6 |
| -Dotty is a platform to try out new language concepts and compiler |
7 |
| -technologies for Scala. The focus is mainly on simplification. We |
8 |
| -remove extraneous syntax (e.g. no XML literals), and try to boil down |
9 |
| -Scala's types into a smaller set of more fundamental constructors. The |
10 |
| -theory behind these constructors is researched in |
11 |
| -[DOT](http://www.cs.uwm.edu/~boyland/fool2012/papers/fool2012_submission_3.pdf), |
12 |
| -a calculus for dependent object types. |
13 |
| - |
14 |
| -####Current status: |
15 |
| - _Technology preview_: currently unsupported, may be functionally incomplete or unsuitable for production use. |
16 |
| - |
17 |
| -####Is it going to be the future Scala? |
18 |
| -Yes, eventually. |
19 |
| - |
20 |
| -####Who's working on it? |
21 |
| -See [github contributors page](https://github.com/lampepfl/dotty/graphs/contributors). |
22 |
| - |
23 |
| -####What are the features that could make me consider trying it? |
24 |
| -| Feature | Status | |
25 |
| -|---------------------------------------------------------------------------------------------------------|---------------------| |
26 |
| -| Union, Intersection and [Literal singleton types](http://docs.scala-lang.org/sips/pending/42.type.html) | Implemented | |
27 |
| -| Fast compilation(phase fusion) | Implemented | |
28 |
| -| [Trait parameters](http://docs.scala-lang.org/sips/pending/trait-parameters.html) | Implemented | |
29 |
| -| [@Static methods and fields](https://github.com/scala/scala.github.com/pull/491) | Implemented | |
30 |
| -| Colored Repl | Implemented | |
31 |
| -| Sbt incremental build | Implemented | |
32 |
| -| Non-blocking lazy vals | Implemented | |
33 |
| -| Multiverse equality | Implemented | |
34 |
| -| Option-less pattern matching(based on [name-based patmat](https://github.com/scala/scala/pull/2848)) | Implemented | |
35 |
| -| Function arity adaptation | Implemented | |
36 |
| -| Exhaustivity checks in pattern matching | Implemented | |
37 |
| -| | | |
38 |
| -| Non-boxed arrays of value classes | In progress | |
39 |
| -| Working contravariant implicits | In progress | |
40 |
| -| [Auto-Specialization](https://github.com/dotty-linker/dotty) | In progress | |
41 |
| -| [Whole program optimizer](https://github.com/dotty-linker/dotty) | In progress | |
42 |
| -| [Library defined optimizations](https://github.com/dotty-linker/dotty) | In progress | |
43 |
| -| | | |
44 |
| -| HList & HMaps\Record types | Under consideration | |
45 |
| -| Implicit functions | Under consideration | |
46 |
| -| Effects | Under consideration | |
47 |
| -| Auto-completion in repl | Under consideration | |
48 |
| -| Spec Option-less pattern matching | Under consideration | |
49 |
| - |
50 |
| -There are also plethora of small details such as [per-callsite @tailrec annotations](https://github.com/lampepfl/dotty/issues/1221) |
51 |
| - |
52 |
| -####What are the complications that I can have If I start using Dotty? |
53 |
| -Dotty can use libraries compiled by scalac 2.11, but Scala scalac can't use libraries compiled by Dotty.<br> |
54 |
| -No existential types.<br> |
55 |
| -No macro support yet. We have big plans here.<br> |
56 |
| -No early initializers. No scala.DelayedInit. Use trait parameters instead.<br> |
57 |
| -Whole program optimizer will only work if all dependencies are compiled by Dotty.<br> |
58 |
| - |
59 |
| - |
60 |
| -####Can I write my code in a way that is going to be compatible with Scalac & Dotty? |
61 |
| -Yes, Dotty itself is a project that can be compiled by both Dotty and Scalac.<br> |
62 |
| -It's not very hard, and the biggest thing that you will likely miss is using macros. |
63 |
| - |
64 |
| -####How can I try it out? |
65 |
| -http://lampepfl.github.io/dotty/docs/contributing/getting-started.html. |
66 |
| -Here’s an example sbt project and instructions on how to set it up: https://github.com/smarter/dotty-example-project/ <br> |
67 |
| -We have colored REPL :-). You can invoke it by running `dotc -repl`. |
68 |
| - |
69 |
| -####We also have: |
70 |
| -Basic support for Scala.js,<br> |
71 |
| -[Prototype](https://github.com/scala-native/scala-native/tree/topic/dotty-support) of compilation to x86 native code(Shabalin)<br> |
72 |
| - |
73 |
| -####What about scalac: |
74 |
| -Scalac is the basis for stability in scala. We expect scalac & dotty to coexist for long time. |
75 |
| - |
76 |
| -####Contributions are welcome! |
77 |
| -We invite you to help us build the future of Scala.<br> |
78 |
| -This is the best moment to participate, as everyone can make an impact.<br> |
79 |
| - |
80 |
| -####SI-2712? |
81 |
| -Since scalac merged a fix into 2.12, we’ll mimic their behaviour. But we have bigger plans for |
82 |
| -HK-types. |
83 |
| - |
| 5 | +* [Homepage](http://dotty.epfl.ch) |
| 6 | +* [Documentation](http://dotty.epfl.ch/docs) |
| 7 | +* [FAQ](http://dotty.epfl.ch/#why-dotty) |
| 8 | +* [Mailing list](https://groups.google.com/forum/#!forum/dotty-internals) |
84 | 9 |
|
| 10 | +How to Contribute |
| 11 | +================= |
| 12 | +* [Getting Started](http://dotty.epfl.ch/docs/contributing/getting-started.html) |
| 13 | +* [Awesome Error Messages](http://scala-lang.org/blog/2016/10/14/dotty-errors.html) |
| 14 | +* [Issues](https://github.com/lampepfl/dotty/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) |
85 | 15 |
|
86 |
| -Developers mailing list is https://groups.google.com/forum/#!forum/dotty-internals. |
| 16 | +License |
| 17 | +======= |
| 18 | +Dotty is licensed under the [3-Clause BSD License](https://github.com/lampepfl/dotty/blob/master/LICENSE.md) |
0 commit comments