memoメモ

最近はGo言語関連で。φ(..)メモメモ

Go tipでなにが行われてる?(2013-08-30)

What's happening in Go tip (2013-08-30)よりメモ。

前回のメモはこちら: http://atotto.hatenadiary.jp/entry/2013/08/24/214941

gopher

(以下、間違い/勘違いがあるかもしれないので注意してね)

What's happening in Go tip (2013-08-30)

  • より安全に
  • GIF画像のエンコーディングをサポート
  • zipの圧縮方法の選択肢が増える
  • MD5とSHAでハッシュがより簡単に
  • go get -tで依存関係のテスト
より安全に

Go is becoming a better citizen ← タイトルの訳し方がわからなかった。。

メモリの割り当てに関する話。

  • 64bitシステムで1GB、32bitシステムで250MBのスタックサイズの制限が入る(?)
  • 10MBを超える全ての変数はヒープへ移動する
  • runtime/debug.SetMaxThreads() を通してスレッドの数を設定する
  • DNSルックアップの???
GIF画像のエンコーディングをサポート

これまで、GIFはデコードだけだったけど、Go 1.2でGIFエンコーダが実装される。

image/drawパッケージに2つのインターフェースが追加されてる: * Drawerインターフェース * Quantizerインターフェース

みんな大好きGIFアニメーションは、新しいエンコーダのEncodeAll関数にある。

zipの圧縮方法の選択肢が増える

archive/zip ではこれまで圧縮方法がハードコードされてた。

zipの仕様では、11の圧縮方法がある。 Goは2つ(DEFLATE、stored)だけサポートしてる。 今回の変更でarchive/zipを直接修正しなくても新しい圧縮方法を追加することができるようになる。

MD5とSHAでハッシュがより簡単に
data := []byte(`hello, world`)
h := sha1.New()
h.Write(data)
hash := h.Sum(nil)
fmt.Printf("H(data) = %x\n", hash)
// Output: H(data) = b7e23ec29af22b0b4e41da31e868d57226121c84

↓ Go 1.2でこうなる。

data := []byte(`hello, world`)
hash := sha1.Sum(data)
fmt.Printf("H(data) = %x\n", hash)
// Output: H(data) = b7e23ec29af22b0b4e41da31e868d57226121c84
go get -tで依存関係のテスト

go getに依存関係をテストする-tオプションが追加される。

ひとまずおしまい。。

プログラミング言語Goフレーズブック

プログラミング言語Goフレーズブック

  • 作者: David Chisnall,デイビッド・チズナール,柴田芳樹
  • 出版社/メーカー: ピアソン桐原
  • 発売日: 2012/10/04
  • メディア: 単行本(ソフトカバー)
  • 購入: 1人 クリック: 5回
  • この商品を含むブログを見る
基礎からわかる Go言語

基礎からわかる Go言語

Programming in Go: Creating Applications for the 21st Century (Developer's Library)

Programming in Go: Creating Applications for the 21st Century (Developer's Library)