3 回答

TA貢獻2003條經驗 獲得超2個贊
Go1.5開發環境依賴Go1.4版本作為引導,因為Go1.5使用Go本身來編譯安裝Go,所以必須保證服務器上已經安裝Go1.4,這完全是為了解決先有雞還是先有蛋的問題,當然如果你想避免編譯安裝1.4也可以直接使用二進制包。
在這里假設你希望將go1.5安裝到$HOME/go1.5目錄下,只需要以下幾步:
下載Go1.5的源碼放到$HOME/go1.5目錄下
在安裝Go1.5之前需要將Go1.4放到$HOME/go1.4下面或者export GOROOT_BOOTSTRAP=/go1.4安裝目錄/
到$HOME/go1.5/src/下執行all.bash即可
我習慣將軟件安裝至/usr/local/下,以下為我安裝Go1.5(/usr/local/go1.5)的步驟:
wget https://storage.googleapis.com/golang/go1.5.1.src.tar.gz
tar zxvf go1.5.1.src.tar.gz
mv ./go /usr/local/go1.5
wget https://storage.googleapis.com/golang/go1.4.3.src.tar.gz
tar zxvf go1.4.3.src.tar.gz
mv ./go /usr/local/go-bootstrap1.4/
cd /usr/local/go-bootstrap1.4/src
./all.bash //編譯安裝Go1.4,有可能test不通過,只要編譯通過,test可忽略,目的是需要go1.4的二進制包來編譯1.5
cd /usr/local/go1.5/src
GOROOT_BOOTSTRAP=/usr/local/go-bootstrap1.4 ./all.bash
//可在環境變量中添加GOROOT_BOOTSTRAP,然后再編譯Go1.5
以下為網摘:
From C to Go
The gc tool chain is being converted from C to Go.
An ongoing process, started early 2014.
Russ Cox says "It'll be done by March [2015]."
New link tool to replace 6l, 8l, etc.
New asm tool to replace 6a, 8a, etc.
Machine-translated gc to replace 6g, 8g, etc.
Design doc:
golang.org/s/go13compiler
Go 1.5 will have no C code in the tool chain or runtime.
Go語言將使用Go代替C重寫運行時環境
Go 1.4 的合并窗口在 9 月份將關閉,從現在開始到12月份發布 Go 1.4 之前將只接受 bug 修復和小調整。
Go 1.4 最主要的變化是將使用 Go 語言本身來重寫 Go 的運行時,而之前是采用 C 語言開發。這也是為什么 Go 的發行版中包含一個 C
編譯器的原因。
使用 Go 重寫的好處是:
當前如果在 Goroutine 的調用堆棧中發現 C 代碼,runtime 將在需要增長堆棧時回滾到老的堆棧方法。如果使用 Go 來重寫
runtime,那么堆棧拷貝的方法就會更加高效
目前轉換工作只計劃轉 Go 編譯器 (5g, 6g, 8g), 而不是 C 編譯器,降低運行時中的 C 代碼行數,甚至可能完全清除
注意
這是 golang.org 分發版,也就是 gc ,而不是 gccgo
這是不同的 C 編譯器,gc 工具鏈將使用你系統的 C 編譯器來編譯,gc 運行時則使用它的 C 編譯器來編譯
8月20日后增加的轉換行可能跟 this request 有關.
Go語言將使用Go代替C重寫運行時環境

TA貢獻1860條經驗 獲得超8個贊
1.最簡單的方法: public static String reverse1(String str) { return new StringBuffer(str).reverse().toString(); } 2.最常用的方法: public static String reverse3(String s) { char[] array = s.toCharArray(); String reverse = ""; /...
- 3 回答
- 0 關注
- 1004 瀏覽
添加回答
舉報