aboutsummaryrefslogtreecommitdiff
path: root/doc/devel/roadmap.html
blob: 343203cdbfa9735a64d5f3f087e46ce3dbe7ab5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!-- Roadmap -->

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

<p>
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.
<li>
Methods for operators, to allow a type to use arithmetic notation for
expressions.
<li>
Possibly allow top-level packages to be given names other than main.
</ul>

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

<ul>
<li>
Improved garbage collector.
<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>
Use escape analysis to keep more data on stack.
</ul>

<h4 id="Gccgo_roadmap">
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>

<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>


<h3 id="done">Done</h3>

<ul>
<li>
gc: Generate DWARF debug info.
<li>
gc: Provide gdb support for runtime facilities.
<li>
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>		
A more general definition of <code>...</code> in parameter lists.
<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).
<li>
5g: Better floating point support.
<li>
Improved CGO including some mechanism for calling back from C to Go.
<li>
Faster, allocation-light reflection.
</ul>