From 8baa279bac94e67d2427c21bf0294a0951fe3ab4 Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Mon, 9 May 2016 09:52:02 -0400 Subject: [PATCH 1/7] Update Readme.md for ScalaDays @odersky please review --- README.md | 81 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 62 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index cfa946253016..fc1388a6bcc5 100644 --- a/README.md +++ b/README.md @@ -11,29 +11,72 @@ 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 | +| Fast compilation (phase fusion) | Implemented | +| Working contravariant implicits | Implemented | +| Trait parameters | Implemented | +| @Static methods and fields | Implemented | +| Colored Repl | Implemented | +| Sbt incremental build | Implemented | +| Non-blocking lazy vals | Implemented | +| | | +| Non-boxed arrays of value classes | In progress | +| Auto-Specialization | In progress | +| Whole program optimizer | In progress | +| | | +| 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] + +####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.
+No existential types.
+No macro support yet. We have big plans here.
+No early initializers. No scala.DelayedInit. Use trait arguments instead.
+Whole program optimizer will only work if all dependencies are compiled by Dotty.
+ + +####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.
+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/
+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,
+[Prototype](https://github.com/scala-native/scala-native/tree/topic/dotty-support) of compilation to x86 native code(Shabalin)
+####What about scalac: +Scalac is basis for stability in scala. We expect scalac & dotty to coexist for long. + +####Contributions are welcome! +We invite you to help us build the future of Scala.
+That's the best moment to participate, as everyone can make an impact.
-  +####SI-2712? +If scalac will put it into 2.12, we’ll mimic their behaviour. But we have bigger plans for +HK-types. -  -![YourKit](https://www.yourkit.com/images/yklogo.png) 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. From 4e9fecf01cf3589f464bc1a05d9c9228aaa94cfe Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Mon, 9 May 2016 09:53:13 -0400 Subject: [PATCH 2/7] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fc1388a6bcc5..949d5185d5a6 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,8 @@ See [github contributors page](https://github.com/lampepfl/dotty/graphs/contribu | 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] +| 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) ####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.
From b321c3c039a57f0d696a83748cba0e5b5a3ff533 Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Mon, 9 May 2016 10:12:32 -0400 Subject: [PATCH 3/7] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 949d5185d5a6..4da96081ce04 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,9 @@ See [github contributors page](https://github.com/lampepfl/dotty/graphs/contribu | Non-blocking lazy vals | Implemented | | | | | Non-boxed arrays of value classes | In progress | -| Auto-Specialization | In progress | -| Whole program optimizer | 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 | From 7124da9606a3d780366bb06a89a56ebc347144dc Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Mon, 9 May 2016 10:41:34 -0400 Subject: [PATCH 4/7] Update README.md --- README.md | 57 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 4da96081ce04..7b573b721f35 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ theory behind these constructors is researched in a calculus for dependent object types. ####Current status: - _Technology preview_: currently unsupported, may not be functionally complete, and are not suitable for deployment in production. + _Technology preview_: currently unsupported, may not be functionally complete, and not suitable for deployment in production. ####Is it going to be the future Scala? Yes, eventually. @@ -21,36 +21,37 @@ Yes, eventually. 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 | -| Fast compilation (phase fusion) | Implemented | -| Working contravariant implicits | Implemented | -| Trait parameters | Implemented | -| @Static methods and fields | Implemented | -| Colored Repl | Implemented | -| Sbt incremental build | Implemented | -| Non-blocking lazy vals | Implemented | -| | | -| 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) +| Feature | Status | +|---------------------------------------------------------------------------------------------------------|---------------------| +| Union, Intersection and [Literal singleton types](http://docs.scala-lang.org/sips/pending/42.type.html) | Implemented | +| Fast compilation (phase fusion) | Implemented | +| [Trait parameters](http://docs.scala-lang.org/sips/pending/trait-parameters.html) | Implemented | +| [@Static methods and fields](https://github.com/scala/scala.github.com/pull/491) | Implemented | +| Colored Repl | Implemented | +| Sbt incremental build | Implemented | +| Non-blocking lazy vals | Implemented | +| Option-less pattern matching(based on [name-based patmat](https://github.com/scala/scala/pull/2848)) | Under consideration | +| | | +| Non-boxed arrays of value classes | In progress | +| Working contravariant implicits | In progress | +| [Auto-Specialization](https://github.com/dotty-linker/dotty) | In progress | +| [Whole program optimizer](https://github.com/dotty-linker/dotty) | In progress | +| [Library defined optimizations](https://github.com/dotty-linker/dotty) | In progress | +| | | +| HList & HMaps\Record types | Under consideration | +| Implicit functions | Under consideration | +| Effects | Under consideration | +| Auto-completion in repl | Under consideration | +| Spec Option-less pattern matching | Under consideration | +| Multiverse equality | Under consideration | +| Exhaustivity checks in pattern matching | Under consideration | +There are also plethora of small details such as [per-callsite @tailrec annotations](https://github.com/lampepfl/dotty/issues/1221) ####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.
No existential types.
No macro support yet. We have big plans here.
-No early initializers. No scala.DelayedInit. Use trait arguments instead.
+No early initializers. No scala.DelayedInit. Use trait parameters instead.
Whole program optimizer will only work if all dependencies are compiled by Dotty.
@@ -68,11 +69,11 @@ Basic support for Scala.js,
[Prototype](https://github.com/scala-native/scala-native/tree/topic/dotty-support) of compilation to x86 native code(Shabalin)
####What about scalac: -Scalac is basis for stability in scala. We expect scalac & dotty to coexist for long. +Scalac is the basis for stability in scala. We expect scalac & dotty to coexist for long time. ####Contributions are welcome! We invite you to help us build the future of Scala.
-That's the best moment to participate, as everyone can make an impact.
+This is the best moment to participate, as everyone can make an impact.
####SI-2712? If scalac will put it into 2.12, we’ll mimic their behaviour. But we have bigger plans for From b3232de77b9d6890eee630ff546732b473fedf92 Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Mon, 9 May 2016 10:56:52 -0400 Subject: [PATCH 5/7] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7b573b721f35..94450278db28 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ theory behind these constructors is researched in a calculus for dependent object types. ####Current status: - _Technology preview_: currently unsupported, may not be functionally complete, and not suitable for deployment in production. + _Technology preview_: currently unsupported, may be functionally incomplete or unsuitable for production use. ####Is it going to be the future Scala? Yes, eventually. @@ -24,13 +24,13 @@ See [github contributors page](https://github.com/lampepfl/dotty/graphs/contribu | Feature | Status | |---------------------------------------------------------------------------------------------------------|---------------------| | Union, Intersection and [Literal singleton types](http://docs.scala-lang.org/sips/pending/42.type.html) | Implemented | -| Fast compilation (phase fusion) | Implemented | +| Fast compilation(phase fusion) | Implemented | | [Trait parameters](http://docs.scala-lang.org/sips/pending/trait-parameters.html) | Implemented | | [@Static methods and fields](https://github.com/scala/scala.github.com/pull/491) | Implemented | | Colored Repl | Implemented | | Sbt incremental build | Implemented | | Non-blocking lazy vals | Implemented | -| Option-less pattern matching(based on [name-based patmat](https://github.com/scala/scala/pull/2848)) | Under consideration | +| Option-less pattern matching(based on [name-based patmat](https://github.com/scala/scala/pull/2848)) | Implemented | | | | | Non-boxed arrays of value classes | In progress | | Working contravariant implicits | In progress | From c9be68e03940919a977f799d9d64c2600c30585f Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Mon, 9 May 2016 16:55:27 -0400 Subject: [PATCH 6/7] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 94450278db28..0bf8ffb84cda 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ See [github contributors page](https://github.com/lampepfl/dotty/graphs/contribu | Sbt incremental build | Implemented | | Non-blocking lazy vals | Implemented | | Option-less pattern matching(based on [name-based patmat](https://github.com/scala/scala/pull/2848)) | Implemented | +| Function arity adaptation | Implemented | | | | | Non-boxed arrays of value classes | In progress | | Working contravariant implicits | In progress | From f18e27b360c15b2cb4d73a67a504e369601a898a Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Tue, 10 May 2016 07:02:49 -0400 Subject: [PATCH 7/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0bf8ffb84cda..ec9f72375421 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ It's not very hard, and the biggest thing that you will likely miss is using mac ####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/
+Here’s an example sbt project and instructions on how to set it up: https://github.com/smarter/dotty-example-project/
We have colored REPL :-). You can invoke it by running `dotc -repl`. ####We also have: