From Fedora Project Wiki
No edit summary
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Feature: Go Programming =
= Go Programming =


== Summary ==
== Summary ==
Line 7: Line 7:
* Name: [[User:Ender2070| Brandon Lozza]]
* Name: [[User:Ender2070| Brandon Lozza]]
* Wiki page: [https://fedoraproject.org/wiki/User:Ender2070]
* Wiki page: [https://fedoraproject.org/wiki/User:Ender2070]
* Email: [mailto:blozza@gmail.com blozza AT gmail DOT com]
* Email: [mailto:brandon@pwnage.ca brandon AT pwnage DOT ca]


== Current status ==
== Current status ==
* Targeted release: [[Releases/14 | Fedora 14 ]]  
* Targeted release: [[Releases/? | Fedora ? ]]  
* Last updated: 2010-06-17
* Last updated: 2010-07-06
* Percentage of completion: 50% (Compiler Works)
* Percentage of completion: 50% (Official Compiler Works)


== Detailed Description ==
== Detailed Description ==
Go is a general-purpose language designed with systems programming in mind. It is strongly typed and garbage-collected and has explicit support for concurrent programming. Programs are constructed from packages, whose properties allow efficient management of dependencies. The existing implementations use a traditional compile/link model to generate executable binaries. (From: [http://golang.org/doc/go_spec.html])
Go is a general-purpose language designed with systems programming in mind. It is strongly typed and garbage-collected and has explicit support for concurrent programming. Programs are constructed from packages, whose properties allow efficient management of dependencies. The existing implementations use a traditional compile/link model to generate executable binaries. (From: [http://golang.org/doc/go_spec.html])
* There are currently two implementations:
* There are currently two implementations:
# Google Go (GC) 6g(64-bit)/8g(32-bit) Compiler
# Official Go (GC) 6g(64-bit)/8g(32-bit) Compiler
# GNU GCC-GO
# GNU GCC-GO


* Google Go (GC) 6g(64-bit)/8g(32-bit) Compiler
* Official Go (GC) 6g(64-bit)/8g(32-bit) Compiler
6g (64-bit) and 8g (32-bit) are compilers for the Go programming Language. Go is an open source project, released under a BSD-style license. [http://golang.org/LICENSE]
6g (64-bit) and 8g (32-bit) are compilers for the Go programming Language. Go is an open source project, released under a BSD-style license. [http://golang.org/LICENSE]
* GNU GCC-GO
* GNU GCC-GO
Line 30: Line 30:
== Scope ==
== Scope ==
Required steps are:
Required steps are:
# Google Go (6g and 8g)
# Official Go Compiler (6g and 8g)
# GNU GCC-Go
# Guideline for package Go application
# Guideline for package Go application


Line 39: Line 38:
* Collect feedback from volunteers regarding their experience with Go programming
* Collect feedback from volunteers regarding their experience with Go programming
* Currently Google Go (8g) works on x86 and 6g works on x86_64.
* Currently Google Go (8g) works on x86 and 6g works on x86_64.
* Konrad Meyer has Source RPMS for F12 go-0-0.YYYYMMDD.fc12.src.rpm [http://konradm.fedorapeople.org/fedora/SRPMS/]
* Conrad Meyer has Source RPMS for F12 go-0-0.YYYYMMDD.fc12.src.rpm [http://konradm.fedorapeople.org/fedora/SRPMS/]
* Brandon Lozza has Fedora 13 Source RPMS from latest snapshot (based on Conrad's Work) (June 21 2010) [http://www.pwnage.ca/dist/SRPMS/]
* Google Go has been proposed as a Fedora package [https://bugzilla.redhat.com/show_bug.cgi?id=652987]


== Contingency Plan ==
== Contingency Plan ==
Line 47: Line 48:
== Documentation ==
== Documentation ==
* Effective Go: [http://golang.org/doc/effective_go.html]
* Effective Go: [http://golang.org/doc/effective_go.html]
* Google Go Compiler Installation: [http://golang.org/doc/install.html]
* Official Go Compiler Installation: [http://golang.org/doc/install.html]
* GNU GCC-GO Installation Instructions [http://golang.org/doc/gccgo_install.html]
* GNU GCC-GO Installation Instructions [http://golang.org/doc/gccgo_install.html]
* Go Language FAQ: [http://golang.org/doc/go_faq.html]
* Go Language FAQ: [http://golang.org/doc/go_faq.html]
Line 54: Line 55:


== Release Notes ==
== Release Notes ==
Go programming is available in Fedora 14.
Go programming is available in Fedora ____ .


== Comments and Discussion ==
== Comments and Discussion ==

Latest revision as of 22:05, 22 June 2011

Go Programming

Summary

Add a Go compiler

Owner

Current status

  • Targeted release: Fedora ?
  • Last updated: 2010-07-06
  • Percentage of completion: 50% (Official Compiler Works)

Detailed Description

Go is a general-purpose language designed with systems programming in mind. It is strongly typed and garbage-collected and has explicit support for concurrent programming. Programs are constructed from packages, whose properties allow efficient management of dependencies. The existing implementations use a traditional compile/link model to generate executable binaries. (From: [2])

  • There are currently two implementations:
  1. Official Go (GC) 6g(64-bit)/8g(32-bit) Compiler
  2. GNU GCC-GO
  • Official Go (GC) 6g(64-bit)/8g(32-bit) Compiler

6g (64-bit) and 8g (32-bit) are compilers for the Go programming Language. Go is an open source project, released under a BSD-style license. [3]

  • GNU GCC-GO

The gccgo compiler is a new frontend for gcc, the widely used GNU compiler. Although the frontend itself is under a BSD-style license, gccgo is normally used as part of gcc and is then covered by the GNU General Public License. [4]

Benefit to Fedora

Fedora will take some benefit to increase its community of developers with the inclusion of this feature. And an easy way for people who want to try this language.

Scope

Required steps are:

  1. Official Go Compiler (6g and 8g)
  2. Guideline for package Go application

How To Test

  • Ensure that the 'Hello World' Application on Golang.org compiles and runs. Possibly use some of the examples listed in 'Effective Go'.
  • Lots of software is available [5] (Libraries, Software, Bindings)
  • Collect feedback from volunteers regarding their experience with Go programming
  • Currently Google Go (8g) works on x86 and 6g works on x86_64.
  • Conrad Meyer has Source RPMS for F12 go-0-0.YYYYMMDD.fc12.src.rpm [6]
  • Brandon Lozza has Fedora 13 Source RPMS from latest snapshot (based on Conrad's Work) (June 21 2010) [7]
  • Google Go has been proposed as a Fedora package [8]

Contingency Plan

None necessary. We should get Google Go or GCC-Go packages into the distribution in order to help the Community. We should also monitor upstream development process for potentially discovered issues and proactively apply patches.

Documentation

  • Effective Go: [9]
  • Official Go Compiler Installation: [10]
  • GNU GCC-GO Installation Instructions [11]
  • Go Language FAQ: [12]
  • Language Design FAQ: [13]
  • Programming FAQ: [14]

Release Notes

Go programming is available in Fedora ____ .

Comments and Discussion