Bạn có thể xem thêm trong " Thiết lập và sử dụng gccgo ":
gccgo, một trình biên dịch cho ngôn ngữ cờ vây. Trình biên dịch gccgo là một giao diện người dùng mới cho GCC.
Lưu ý rằng gccgo không phải là trình biên dịch gc
Như đã giải thích trong " Gccgo in GCC 4.7.1 " (tháng 7 năm 2012)
Ngôn ngữ cờ vây luôn được xác định bởi một thông số kỹ thuật, không phải một triển khai. Nhóm cờ vây đã viết hai trình biên dịch khác nhau triển khai thông số kỹ thuật đó: gc và gccgo.
- Gc là trình biên dịch gốc và công cụ go sử dụng nó theo mặc định.
- Gccgo là một triển khai khác với trọng tâm khác
So với gc, gccgo biên dịch mã chậm hơn nhưng hỗ trợ tối ưu hóa mạnh mẽ hơn, do đó, chương trình ràng buộc CPU do gccgo xây dựng thường sẽ chạy nhanh hơn.
Cũng thế:
- Trình biên dịch gc chỉ hỗ trợ các bộ xử lý phổ biến nhất: x86 (32-bit và 64-bit) và ARM.
- Gccgo, tuy nhiên, hỗ trợ tất cả các bộ xử lý mà GCC hỗ trợ.
Không phải tất cả các bộ xử lý đó đều đã được kiểm tra kỹ lưỡng cho gccgo, nhưng nhiều bộ xử lý có, bao gồm x86 (32-bit và 64-bit), SPARC, MIPS, PowerPC và thậm chí cả Alpha.
Gccgo cũng đã được thử nghiệm trên các hệ điều hành mà trình biên dịch gc không hỗ trợ, đặc biệt là Solaris.
nếu bạn cài đặt các lệnh truy cập từ Go phiên bản tiêu chuẩn, nó đã hỗ trợ gccgo thông qua -compiler
tùy chọn: go build -compiler gccgo myprog
.
Tóm lại: gccgo: tối ưu hơn, nhiều bộ xử lý hơn .
Tuy nhiên, như nhận xét của OneOfOne ( nguồn ), thường có sự giải đồng bộ hóa giữa bản go được gccgo hỗ trợ và bản phát hành go mới nhất:
gccgo chỉ hỗ trợ tối đa phiên bản go v1.2 , vì vậy nếu bạn cần bất kỳ thứ gì mới trong 1.3 / 1.4 (mẹo) thì không thể sử dụng gccgo. -
GCC phát hành 4.9 sẽ chứa phiên bản Go 1.2 (không phải 1.3) của gccgo .
Lịch phát hành cho các dự án GCC và Go không trùng nhau, có nghĩa là 1.3 sẽ có sẵn trong nhánh phát triển nhưng bản phát hành GCC tiếp theo, 4.10, có thể sẽ có phiên bản Go 1.4 của gccgo.
twotwotwo đề cập trong phần bình luận về slide trình bày của Brad Fitzpatrick
gccgo tạo ra mã rất tốt
... nhưng thiếu phân tích thoát: giết hiệu suất với nhiều phân bổ nhỏ + rác
... GC không chính xác. Không tốt cho 32-bit.
twotwotwo cho biết thêm:
Một slide khác đề cập rằng việc tạo mã ARM không phải gccgo là rất khó.
Giả sử đó là một tùy chọn thú vị cho dự án của bạn, có thể so sánh các tệp nhị phân cho trường hợp sử dụng của bạn trên kiến trúc mục tiêu của bạn.
Theo nhận xét của peterSO , Go 1.5 ngay bây giờ (Q3 / Q4 2015) có nghĩa là:
Trình biên dịch và thời gian chạy hiện được viết hoàn toàn bằng Go (với một trình biên dịch nhỏ).
C không còn tham gia vào việc triển khai, và do đó trình biên dịch C từng cần thiết để xây dựng bản phân phối đã biến mất .
Slide "Go in Go" đề cập đến:
C đã biến mất.
Lưu ý: gccgo vẫn đang phát triển mạnh mẽ.
Berkant hỏi trong các bình luận nếu đó gccgo
là thứ gc
được khởi động từ.
Jörg W Mittag câu trả lời:
Không, gccgo
xuất hiện sau gc
.
gc
ban đầu được viết bằng C. Nó dựa trên trình biên dịch C của Ken Thompson từ hệ điều hành Plan9 , phiên bản kế nhiệm của Unix, được thiết kế bởi cùng một người. gc
đã được tái cấu trúc lặp đi lặp lại để ngày càng có nhiều thứ hơn được viết bằng Go.
gccgo
được bắt đầu bởi Ian Lance Taylor , một hacker GCC không liên kết với dự án cờ vây.
Lưu ý rằng trình biên dịch Go hoàn toàn tự lưu trữ đầu tiên thực sự là một triển khai mã nguồn đóng thương mại độc quyền dành cho Windows mà tên của nó dường như đã biến mất khỏi bộ não của tôi giống như cách nó đã làm với Internet. Họ tuyên bố có một trình biên dịch tự lưu trữ được viết bằng Go, nhắm mục tiêu Windows vào thời điểm gccgo
chưa tồn tại và gc
cực kỳ khó khăn khi thiết lập trên Windows. (Về cơ bản, bạn phải thiết lập một môi trường Cygwin đầy đủ, vá mã nguồn và biên dịch từ nguồn.) Tuy nhiên, công ty dường như đã phải gấp rút, trước khi họ tiếp thị sản phẩm.
Hector Chu đã phát hành một cổng Go của Windows vào tháng 11 năm 2009.
Và go-lang.cat-v.org/os-ports
trang này cũng đề cập đến công việc ban đầu của Joe / Joseph Poirier . Trong trang này :
Bất kỳ cơ hội nào mà ai đó quen biết có thể yêu cầu một trong những người ( Alex Brainman - Hector Chu - Joseph Poirier) tham gia sản xuất cổng Windows có thể tạo một mục wiki mô tả chi tiết môi trường xây dựng của họ?
Thêm vào đó (trong Viết ứng dụng web trong Go ) ! 光 京 (Wei Guangjing) .