" Gccgo’yu kurma ve kullanma " bölümünde daha fazlasını görebilirsiniz :
gccgo, Go dili için bir derleyici. Gccgo derleyicisi, GCC için yeni bir ön uçtur.
Gccgo'nun gc derleyicisi olmadığını unutmayın
" GCC 4.7.1'de Gccgo " (Temmuz 2012) bölümünde açıklandığı gibi
Go dili her zaman bir uygulama tarafından değil, bir spesifikasyonla tanımlanmıştır. Go ekibi bu özelliği uygulayan iki farklı derleyici yazdı: gc ve gccgo.
- Gc orijinal derleyicidir ve go aracı bunu varsayılan olarak kullanır.
- Gccgo, farklı bir odağa sahip farklı bir uygulamadır
Gc ile karşılaştırıldığında, gccgo kodu derlemek için daha yavaştır ancak daha güçlü optimizasyonları destekler, bu nedenle gccgo tarafından oluşturulan CPU'ya bağlı bir program genellikle daha hızlı çalışır.
Ayrıca:
- Gc derleyicisi yalnızca en popüler işlemcileri destekler: x86 (32 bit ve 64 bit) ve ARM.
- Ancak Gccgo, GCC'nin desteklediği tüm işlemcileri destekler.
Tüm bu işlemciler gccgo için kapsamlı bir şekilde test edilmemiştir, ancak x86 (32-bit ve 64-bit), SPARC, MIPS, PowerPC ve hatta Alpha dahil olmak üzere çoğu işlemciye sahiptir.
Gccgo, başta Solaris olmak üzere gc derleyicisinin desteklemediği işletim sistemlerinde de test edilmiştir.
Eğer standart Git sürümden go komutu yüklerseniz, zaten destekler aracılığıyla gccgo -compiler
seçeneği: go build -compiler gccgo myprog
.
Kısaca: gccgo: daha fazla optimizasyon, daha fazla işlemci .
Ancak, OneOfOne ( kaynak ) tarafından yorumlandığı gibi , genellikle gccgo tarafından desteklenen go ile en son go sürümü arasında bir senkronizasyon çözme vardır:
gccgo yalnızca go v1.2 sürümüne kadar destekler , bu nedenle 1.3 / 1.4'te (ipucu) yeni bir şeye ihtiyacınız varsa gccgo kullanılamaz. -
GCC sürüm 4.9 , gccgo'nun Go 1.2 (1.3 değil) sürümünü içerecektir .
GCC ve Go projeleri için yayın programları çakışmıyor, bu da 1.3'ün geliştirme dalında mevcut olacağı, ancak bir sonraki GCC sürümü olan 4.10'un muhtemelen gccgo'nun Go 1.4 sürümüne sahip olacağı anlamına geliyor.
twotwotwo bahseder yorumlarda Brad Fitzpatrick en sunum slayt
gccgo çok iyi kod üretir
... ancak kaçış analizinden yoksundur: birçok küçük alaşım + çöp ile performansı düşürür
... GC hassas değildir. 32 bit için kötü.
twotwotwo ekliyor:
Başka bir slayt, gccgo dışı ARM kod oluşturmanın riskli olduğundan bahsediyor.
Projeniz için ilginç bir seçenek olduğunu varsayarsak, muhtemelen hedef mimarinizdeki kullanım durumunuz için ikili dosyaları karşılaştırın.
As peterSO yorumların , Go 1.5 şimdi (Q3 / Q4 2015) vasıtası:
Derleyici ve çalışma zamanı artık tamamen Go'da yazılmıştır (küçük bir derleyici ile).
C artık uygulamaya dahil değildir ve bu nedenle bir zamanlar dağıtımı oluşturmak için gerekli olan C derleyicisi ortadan kalkar. .
"Git" slaydında şunlar belirtilmektedir:
C gitti.
Yan not: gccgo hala güçleniyor.
Berkant yorumlardagccgo
ne olup olmadığını soruyorgc
den önyükleyicisini edildi.
Jörg W Mittag cevaplar:
Hayır, gccgo
sonra ortaya çıktıgc
.
gc
C de yazılmıştır . Aynı kişiler tarafından tasarlanan Unix'in halefi olan Plan9 işletim sisteminden Ken Thompson'ın C derleyicisine dayanmaktadır . gc
gittikçe daha fazla Go'da yazılması için yinelemeli olarak yeniden düzenlendi.
gccgo
Go projesine bağlı olmayan bir GCC hacker'ı olan Ian Lance Taylor tarafından başlatıldı .
Tamamen kendi kendine barındırılan ilk Go derleyicisinin aslında adı, internetten olduğu gibi beynimden silinmiş gibi görünen, Windows için özel bir ticari kapalı kaynak uygulaması olduğunu unutmayın. Go'da yazılmış, kendi kendine barındırılan bir derleyiciye sahip olduklarını iddia ettiler, gccgo
henüz var olmayan bir zamanda Windows'u hedefliyorlardı ve Windows'ta gc
kurulması son derece zahmetliydi. (Temelde tam bir Cygwin ortamı kurmanız, kaynak kodunu yamalamanız ve kaynaktan derlemeniz gerekiyordu.) Bununla birlikte, şirket daha ürünü pazarlamayı başaramadan katlanmış görünüyor.
Hector Chu Kasım 2009'da Go Windows bağlantı noktasını serbest vermedi
Ve go-lang.cat-v.org/os-ports
sayfa bahseder Joe / Joseph Poirier sıra ilk işi. Gelen bu sayfada :
Bilgiye sahip birinin , Windows bağlantı noktasını üreten adamlardan birinin ( Alex Brainman - Hector Chu - Joseph Poirier), yapı ortamlarını detaylandıran bir wiki girişi yapmasını istemesi ihtimali var mı?
Buna ekleyin ( Go'da Web Uygulamaları Yazma ) ! 光 京 (Wei Guangjing) .