@@ -11,29 +11,75 @@ theory behind these constructors is researched in
11
11
[ DOT] ( http://www.cs.uwm.edu/~boyland/fool2012/papers/fool2012_submission_3.pdf ) ,
12
12
a calculus for dependent object types.
13
13
14
- The dotty compiler is largely a new design. It takes a more functional
15
- approach than current scalac, paired with aggressive caching to
16
- achieve good performance. Some parts, in particular those that have to
17
- do with configuration and input/output are ported from the Scala
18
- compiler. The compiler is fully functional, in particular it can
19
- compile itself. But there's more work needed (and planned) on
20
- polishing rough edges, improving diagnostics, improving compilation
21
- speed, and embedding in other tools.
22
-
23
- We expect that, over time, some of the new technologies explored in
24
- this project will find their way into future versions of Scala. At
25
- present it is too early to say which ones and when.
26
-
27
- If you want to try it out, to get started have a look at
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
+ | Option-less pattern matching(based on [ name-based patmat] ( https://github.com/scala/scala/pull/2848 ) ) | Implemented |
34
+ | Function arity adaptation | Implemented |
35
+ | | |
36
+ | Non-boxed arrays of value classes | In progress |
37
+ | Working contravariant implicits | In progress |
38
+ | [ Auto-Specialization] ( https://github.com/dotty-linker/dotty ) | In progress |
39
+ | [ Whole program optimizer] ( https://github.com/dotty-linker/dotty ) | In progress |
40
+ | [ Library defined optimizations] ( https://github.com/dotty-linker/dotty ) | In progress |
41
+ | | |
42
+ | HList & HMaps\Record types | Under consideration |
43
+ | Implicit functions | Under consideration |
44
+ | Effects | Under consideration |
45
+ | Auto-completion in repl | Under consideration |
46
+ | Spec Option-less pattern matching | Under consideration |
47
+ | Multiverse equality | Under consideration |
48
+ | Exhaustivity checks in pattern matching | Under consideration |
49
+ There are also plethora of small details such as [ per-callsite @tailrec annotations] ( https://github.com/lampepfl/dotty/issues/1221 )
50
+
51
+ ####What are the complications that I can have If I start using Dotty?
52
+ Dotty can use libraries compiled by scalac 2.11, but Scala scalac can't use libraries compiled by Dotty.<br >
53
+ No existential types.<br >
54
+ No macro support yet. We have big plans here.<br >
55
+ No early initializers. No scala.DelayedInit. Use trait parameters instead.<br >
56
+ Whole program optimizer will only work if all dependencies are compiled by Dotty.<br >
57
+
58
+
59
+ ####Can I write my code in a way that is going to be compatible with Scalac & Dotty?
60
+ Yes, Dotty itself is a project that can be compiled by both Dotty and Scalac.<br >
61
+ It's not very hard, and the biggest thing that you will likely miss is using macros.
62
+
63
+ ####How can I try it out?
28
64
https://github.com/lampepfl/dotty/wiki/Getting-Started .
65
+ Here’s an example sbt project and instructions on how to set it up: https://github.com/smarter/dotty-example-project/ <br >
66
+ We have colored REPL :-). You can invoke it by running ` dotc -repl ` .
29
67
30
- Developers mailing list is https://groups.google.com/forum/#!forum/dotty-internals .
68
+ ####We also have:
69
+ Basic support for Scala.js,<br >
70
+ [ Prototype] ( https://github.com/scala-native/scala-native/tree/topic/dotty-support ) of compilation to x86 native code(Shabalin)<br >
31
71
72
+ ####What about scalac:
73
+ Scalac is the basis for stability in scala. We expect scalac & dotty to coexist for long time.
74
+
75
+ ####Contributions are welcome!
76
+ We invite you to help us build the future of Scala.<br >
77
+ This is the best moment to participate, as everyone can make an impact.<br >
32
78
33
-   ;
79
+ ####SI-2712?
80
+ If scalac will put it into 2.12, we’ll mimic their behaviour. But we have bigger plans for
81
+ HK-types.
34
82
35
-   ;
36
83
37
- ![ YourKit] ( https://www.yourkit.com/images/yklogo.png ) supports open source projects with its full-featured Java Profiler.
38
84
39
- YourKit, LLC is the creator of [ YourKit Java Profiler ] ( https://www.yourkit .com/java/profiler/index.jsp ) .
85
+ Developers mailing list is https://groups.google .com/forum/#!forum/dotty-internals .
0 commit comments