aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2009-12-16 15:30:39 -0800
committerIan Lance Taylor <iant@golang.org>2009-12-16 15:30:39 -0800
commit2e5a720647c1acb9b8b057bad46dca661f506bd8 (patch)
tree2917db5936b451537628f17190b3ae5ffb02570f
parentb6bac1c0a501353f418df309f56ca0cdec39b214 (diff)
downloadgo-2e5a720647c1acb9b8b057bad46dca661f506bd8.tar.gz
go-2e5a720647c1acb9b8b057bad46dca661f506bd8.zip
Add roadmap document.
Also adds Development heading on navbar, with Roadmap being the only current entry. R=r CC=golang-dev https://golang.org/cl/180069
-rw-r--r--doc/devel/roadmap.html105
1 files changed, 105 insertions, 0 deletions
diff --git a/doc/devel/roadmap.html b/doc/devel/roadmap.html
new file mode 100644
index 0000000000..d2158d928e
--- /dev/null
+++ b/doc/devel/roadmap.html
@@ -0,0 +1,105 @@
+<!-- Roadmap -->
+
+<h2 id="Roadmap">Go Roadmap</h2>
+
+This page lists features and ideas being developed or discussed by the
+Go team. This list will be updated as work continues.
+
+<p>
+The roadmap should be discussed on
+the <a href="http://groups.google.com/group/golang-nuts">golang-nuts
+mailing list</a>.
+
+<h3 id="Language_roadmap">
+Language roadmap</h3>
+
+<p>
+This is a list of language changes that are being considered.
+Appearance on this list is no guarantee that the change will be
+accepted.
+
+<ul>
+<li>
+Adjust and simplify semicolon rules.
+<li>
+Adjust definition of <code>...</code> in parameter lists.
+<li>
+Add explicit conversions from <code>string</code>
+to <code>[]byte</code> and <code>[]int</code>.
+<li>
+Possibly rewrite restriction on goto across variable declarations.
+<li>
+Variant types. A way to define a type as being the union of some set
+of types.
+<li>
+Generics. An active topic of discussion.
+</ul>
+
+<h3 id="Implementation_roadmap">
+Implementation roadmap</h3>
+
+<ul>
+<li>
+Improved garbage collector, most likely a reference counting collector
+with a cycle detector running in a separate core.
+<li>
+Debugger.
+<li>
+Native Client (NaCl) support.
+<li>
+App Engine support.
+<li>
+Improved CGO including some mechanism for calling back from C to Go.
+<li>
+SWIG support.
+<li>
+Public continuous build and benchmark infrastructure.
+<li>
+Improved implementation documentation.
+<li>
+Package manager, possibly including a language change to the import
+statement.
+</ul>
+
+<h4 id="Gc_roadmap">
+Gc compiler roadmap</h4>
+
+<ul>
+<li>
+Method expressions.
+<li>
+Support multiple packages with the same name (but different import
+paths) in the same program.
+<li>
+Implement goto restrictions.
+<li>
+Safe compilation mode: generate code which is guaranteed not to obtain
+an invalid memory address other than via <code>import "unsafe"</code>.
+<li>
+Generate ELF debug info.
+<li>
+Improved optimization.
+<li>
+5g: Better floating point support.
+</ul>
+
+<h4 id = "Gccgo_roadmap">
+Gccgo compiler roadmap</h4>
+
+<ul>
+<li>
+Method expressions.
+<li>
+Support multiple packages with the same name (but different import
+paths) in the same program.
+<li>
+Implement goto restrictions.
+<li>
+Implement garbage collection.
+<li>
+Use goroutines rather than threads.
+<li>
+Separate gcc interface from frontend proper.
+<li>
+Use escape analysis to keep more data on stack.
+</ul>