roadmap.html 2.74 KB
Newer Older
Ian Lance Taylor's avatar
Ian Lance Taylor committed
1 2 3 4
<!-- Roadmap -->

<h2 id="Roadmap">Go Roadmap</h2>

Andrew Gerrand's avatar
Andrew Gerrand committed
5
<p>
Ian Lance Taylor's avatar
Ian Lance Taylor committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
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>
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.
Andrew Gerrand's avatar
Andrew Gerrand committed
30 31 32
<li>
Methods for operators, to allow a type to use arithmetic notation for
expressions.
33 34
<li>
Possibly allow top-level packages to be given names other than main.
Ian Lance Taylor's avatar
Ian Lance Taylor committed
35 36 37 38 39 40 41
</ul>

<h3 id="Implementation_roadmap">
Implementation roadmap</h3>

<ul>
<li>
42
Improved garbage collector.
Ian Lance Taylor's avatar
Ian Lance Taylor committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
<li>
Debugger.
<li>
App Engine support.
<li>
Improved implementation documentation.
</ul>

<h4 id="Gc_roadmap">
Gc compiler roadmap</h4>

<ul>
<li>
Implement goto restrictions.
<li>
Improved optimization.
<li>
Rob Pike's avatar
Rob Pike committed
60
Use escape analysis to keep more data on stack.
Ian Lance Taylor's avatar
Ian Lance Taylor committed
61 62
</ul>

Andrew Gerrand's avatar
Andrew Gerrand committed
63
<h4 id="Gccgo_roadmap">
Ian Lance Taylor's avatar
Ian Lance Taylor committed
64 65 66 67 68 69 70 71 72 73 74 75
Gccgo compiler roadmap</h4>

<ul>
<li>
Implement goto restrictions.
<li>
Use goroutines rather than threads.
<li>
Separate gcc interface from frontend proper.
<li>
Use escape analysis to keep more data on stack.
</ul>
Andrew Gerrand's avatar
Andrew Gerrand committed
76

77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
<h4 id="Tools_roadmap">
Tools roadmap</h4>

<ul>
<li>
Strengthen goinstall until it can displace make for most builds.
</ul>

<h4 id="Packages_roadmap">
Packages roadmap</h4>

<ul>
<li>
Faster, RE2-like regular expressions.
<li>
Comprehensive support for international text.
<li>
Support for international dates, times, etc.
<li>
Support for multilingual messages.
</ul>


Andrew Gerrand's avatar
Andrew Gerrand committed
100 101 102 103
<h3 id="done">Done</h3>

<ul>
<li>
Rob Pike's avatar
Rob Pike committed
104 105 106 107
gc: Generate DWARF debug info.
<li>
gc: Provide gdb support for runtime facilities.
<li>
Andrew Gerrand's avatar
Andrew Gerrand committed
108 109 110 111 112 113 114 115
Safe compilation mode: generate code that is guaranteed not to obtain an invalid memory address other than via <code>import "unsafe"</code>.
<li>
Gccgo: garbage collection.
<li>
SWIG support.
<li>		
Simpler semicolon rules.
<li>		
Andrew Gerrand's avatar
Andrew Gerrand committed
116
A more general definition of <code>...</code> in parameter lists.
Andrew Gerrand's avatar
Andrew Gerrand committed
117 118 119 120 121 122 123 124 125 126 127 128
<li>		
Explicit conversions from <code>string</code>		
to <code>[]byte</code> and <code>[]int</code>.		
<li>
A function that will be run by the garbage collector when an item is freed
(runtime.SetFinalizer).
<li>
Public continuous build and benchmark infrastructure (gobuilder).
<li>
Package manager (goinstall).
<li>
A means of recovering from a panic (recover).
129 130
<li>
5g: Better floating point support.
Russ Cox's avatar
Russ Cox committed
131 132 133 134
<li>
Improved CGO including some mechanism for calling back from C to Go.
<li>
Faster, allocation-light reflection.
Andrew Gerrand's avatar
Andrew Gerrand committed
135
</ul>