本文目录一览:
- 1、如何评价 Golang 1.5 更新
- 2、Golang升级到1.5了.请问下MAC OS 上如何更新Golang
- 3、golang 1.5 什么时候 发布
- 4、如何看待golang新的GC 的Proposal
- 5、mac下打patch后编译安装golang
- 6、如何在Mac源码安装Go1.5开发环境
如何评价 Golang 1.5 更新
没有模板, 差评. 团队还在纠结么? 我们要纠结惨了, 没模板写出来代码一点都不优雅和高效
说好的动态库支持呢?
编译速度又要下降一些了, 运行速度下降, 但是因为垃圾回收并发, 所以应该还好
"全新的 go tool trace 命令支持细粒度的应用执行跟踪" - 这货不知道是不是可以跟踪
Golang升级到1.5了.请问下MAC OS 上如何更新Golang
V没问题,好多音乐人就是买pc装mac,省钱 最好把你声卡之类的也写出来 而且你的cpu是intel的就更没有问题了,支持的比amd的好
golang 1.5 什么时候 发布
根据官方1.4版本的发布时候(2014.12)判断(官方说大概六个月后出新版本)
预计五月底六月初。
因为这次的版本改进幅度有点大,不排除延迟发布的可能。
如何看待golang新的GC 的Proposal
对于Golang的认识还停留在Go1.5那次重大的GC改变,看了Golang1.7的介绍,编译器后端改用了SSA,而且对build方面做了很多优化,这个从github上面的issue上来看,Go1.6存在大量"build: darwin/amd64 builder is sick #15860"之类的构建问题,所以1.7对构建做了较大改动和优化,另外"net/http: receive buffer memory usage increases by 400x with HTTP2 #15930"和一些其他issue表示,Go1.6对HTTP2的处理并不是很好,存在内存使用过多等多种问题,而这些打了Go1.7的标签,应该是要在1.7里面解决了。
mac下打patch后编译安装golang
因为业务上的需求,架构师改了hack了一下golang的源码,放出一个patch文件,给源码打了patch之后,需要重新编译go源码,
我是用 brew 安装的golang, 先用 go env 看看
锁定了源码的路径: /usr/local/Cellar/go/1.7.5/libexec
Go从1.5版本开始实现“自举”(Bootstrap),也就是用Go来实现Go、用Go来编译Go,因此这里的意思是系统默认用go1.4来编译golang,
但是我的系统里面并没有go1.4,这里偷个懒
等待编译测试完成即可。
如何在Mac源码安装Go1.5开发环境
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
tar zxvf go1.5.1.src.tar.gz
mv ./go /usr/local/go1.5
wget
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重写运行时环境
— 从现在开始到12月份 Go 1.4版本发布前,Go将只接受Bug修复和小范围的调整,Go
1.4版本将实现使用Go语言来重写Go的运行时环境。