| <!-- 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. | |
| </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> | |
| App Engine support. | |
| <li> | |
| Improved CGO including some mechanism for calling back from C to Go. | |
| <li> | |
| Improved implementation documentation. | |
| </ul> | |
| <h4 id="Gc_roadmap"> | |
| Gc compiler roadmap</h4> | |
| <ul> | |
| <li> | |
| Implement goto restrictions. | |
| <li> | |
| Generate DWARF debug info. | |
| <li> | |
| Provide gdb support for runtime facilities. | |
| <li> | |
| Improved optimization. | |
| <li> | |
| 5g: Better floating point support. | |
| </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> | |
| <h3 id="done">Done</h3> | |
| <ul> | |
| <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> | |
| Native Client (NaCl) support. | |
| <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). | |
| </ul> | |