読者です 読者をやめる 読者になる 読者になる

詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Go Conference 2015 Summer で Go の REPL gore の話をしてきました & gore 0.2.1

Go

去年からこちら Go の話をしたり聞いたりする機会があればぜひ言ってみたいと思っていたのですが、このたび Go Conferecne 2015 Summer の話を聞きつけて、うまいことスピーカー枠に入ることができたので、前に作った Go の REPL(正確には違うんだけど)である motemen/gore の話をしてきました。

speakerdeck.com

gore の紹介は過去のエントリ コード補完もできる Go の REPL「gore」を作った - 詩と創作・思索のひろば にある通りです。今回はその実装に若干立ち入った紹介をしました。

この日のトークは oracle の紹介にはじまり Go の静的解析めいた発表が多く、個人的にはとてもわくわくさせられた内容でした。時間の都合もあって、gore(と go-quickfix)の面白い部分の詳細の話はぜんぜんできなかったので、また別の機会にできればなと思います。しかし今回は思いがけず Gopher 君人形をもらえて本当にうれしかった! 運営のみなさま、楽しいイベントをありがとうございます。

gore 0.2.1

また GoCon 後のテンションで、gore のバージョンをアップデートしました。主な変更は以下のとおりです。

  • -pkg=<path> フラグを追加しました。あたかも特定のパッケージの中にいるかのようにして、gore セッションを開始することができます。
% gore -pkg=github.com/motemen/gore
gore version 0.2.1  :help for help
added file /Users/motemen/dev/go/src/github.com/motemen/gore/commands.go
added file /Users/motemen/dev/go/src/github.com/motemen/gore/complete.go
added file /Users/motemen/dev/go/src/github.com/motemen/gore/liner.go
added file /Users/motemen/dev/go/src/github.com/motemen/gore/log.go
added file /Users/motemen/dev/go/src/github.com/motemen/gore/main.go
added file /Users/motemen/dev/go/src/github.com/motemen/gore/node.go
added file /Users/motemen/dev/go/src/github.com/motemen/gore/quickfix.go
added file /Users/motemen/dev/go/src/github.com/motemen/gore/terminal_unix.go
added file /Users/motemen/dev/go/src/github.com/motemen/gore/utils.go
gore> version
"0.2.1"

ここでは version 定数 が評価されています。

ちなみに -pkg の指定にはパッケージのパスのほか、ディレクトリを指定することもできます。

  • 内部で motemen/go-quickfix を使うようにしました。これは GoCon の仕込み的な変更です。何か変なことがあった場合には GitHub Issues 経由でお知らせください。
  • ある形の式を評価するとエラーが発生していた件を修正しました。(#21

アップデートは以下のようにして行えます。(開発者向けのツールなのでバイナリの配布はしていません)

% go get -u github.com/motemen/gore