| <!-- 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 CGO including some mechanism for calling back from C to Go. | |
| <li> | |
| Improved implementation documentation. | |
| <li> | |
| Faster, allocation-light reflection. | |
| </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, allocation-light reflection. | |
| <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. | |
| </ul> |