| <!-- 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. |
| <li> |
| Comprehensive support for internationalization. |
| </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> |
| |
| <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> |