|
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