-
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
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
8baa279
Update Readme.md for ScalaDays
DarkDimius 4e9fecf
Update README.md
DarkDimius b321c3c
Update README.md
DarkDimius 7124da9
Update README.md
DarkDimius b3232de
Update README.md
DarkDimius c9be68e
Update README.md
DarkDimius f18e27b
Update README.md
DarkDimius File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,29 +11,75 @@ 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 be functionally incomplete or unsuitable for production use. | ||
|
||
####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](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)) | Implemented | | ||
| Function arity adaptation | Implemented | | ||
| | | | ||
| 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.<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 parameters instead.<br> | ||
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 an example sbt project and instructions on how to set it up: https://github.com/smarter/dotty-example-project/ <br> | ||
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 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.<br> | ||
This is the best moment to participate, as everyone can make an impact.<br> | ||
|
||
| ||
####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. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
There's an SIP for that but I don't know if it matches what's in Dotty: http://docs.scala-lang.org/sips/pending/improved-lazy-val-initialization.html
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.
Implementation in dotty is based on this sip, but there are some differences, eg we allow concurrent initialization of independent fields. Those differences may be small for someone, but maybe huge for others.
I do not want to create misconceptions by linking to a very technical sip that goes into deep details that does not match our details.
It would be good to update the sip one-day or to submit a new-one based on the old one.