aboutsummaryrefslogtreecommitdiff
path: root/docs/blog
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-10-04 12:58:10 +0200
committerFelix Mulder <felix.mulder@gmail.com>2016-10-06 16:39:39 +0200
commit4fa7c71af100d45bce37c2cce0890c1d8365dbc4 (patch)
tree18bfbe1a5bd3561c1094d10fd283f25c83cc2a37 /docs/blog
parenteaa7f1730aa9da0aa7e4b2c4e86fbcc3acf26131 (diff)
downloaddotty-4fa7c71af100d45bce37c2cce0890c1d8365dbc4.tar.gz
dotty-4fa7c71af100d45bce37c2cce0890c1d8365dbc4.tar.bz2
dotty-4fa7c71af100d45bce37c2cce0890c1d8365dbc4.zip
Move wiki into docs dir
Diffstat (limited to 'docs/blog')
-rw-r--r--docs/blog/2015-10-23-dotty-compiler-bootstraps.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/docs/blog/2015-10-23-dotty-compiler-bootstraps.md b/docs/blog/2015-10-23-dotty-compiler-bootstraps.md
new file mode 100644
index 000000000..cdd472b7f
--- /dev/null
+++ b/docs/blog/2015-10-23-dotty-compiler-bootstraps.md
@@ -0,0 +1,63 @@
+---
+layout: blog
+post-type: blog
+by: Martin Odersky and Dmitry Petrashko
+title: We Got LiftOff! The Dotty Compiler for Scala Bootstraps.
+---
+
+## We Got Liftoff!
+
+The [Dotty project](https://github.com/lampepfl/dotty)
+is a platform to develop new technology for Scala
+tooling and to try out concepts of future Scala language versions.
+Its compiler is a new design intended to reflect the
+lessons we learned from work with the Scala compiler. A clean redesign
+today will let us iterate faster with new ideas in the future.
+
+Today we reached an important milestone: The Dotty compiler can
+compile itself, and the compiled compiler can act as a drop-in for the
+original one. This is what one calls a *bootstrap*.
+
+## Why is this important?
+
+The main reason is that this gives us a some validation of the
+*trustworthiness* of the compiler itself. Compilers are complex beasts,
+and many things can go wrong. By far the worst things that can go
+wrong are bugs where incorrect code is produced. It's not fun debugging code that looks perfectly
+fine, yet gets translated to something subtly wrong by the compiler.
+
+Having the compiler compile itself is a good test to demonstrate that
+the generated code has reached a certain level of quality. Not only is
+a compiler a large program (44k lines in the case of dotty), it is
+also one that exercises a large part of the language in quite
+intricate ways. Moreover, bugs in the code of a compiler don't tend to
+go unnoticed, precisely because every part of a compiler feeds into
+other parts and all together are necessary to produce a correct
+translation.
+
+## Are We Done Yet?
+
+Far from it! The compiler is still very rough. A lot more work is
+needed to
+
+ - make it more robust, in particular when analyzing incorrect programs,
+ - improve error messages and warnings,
+ - improve the efficiency of some of the generated code,
+ - embed it in external tools such as sbt, REPL, IDEs,
+ - remove restrictions on what Scala code can be compiled,
+ - help in migrating Scala code that will have to be changed.
+
+## What Are the Next Steps?
+
+Over the coming weeks and months, we plan to work on the following topics:
+
+ - Make snapshot releases.
+ - Get the Scala standard library to compile.
+ - Work on SBT integration of the compiler.
+ - Work on IDE support.
+ - Investigate the best way to obtaining a REPL.
+ - Work on the build infrastructure.
+
+If you want to get your hands dirty with any of this, now is a good moment to get involved!
+To get started: <https://github.com/lampepfl/dotty>.
+