gore 0.4.0をリリースしました!

Go言語のREPL、goreの0.4.0をリリースしました。

id:motemenさんに連絡をとって、goreのコミット権をいただきました。 最初はpull requestが溜まっていたので片付けて、細かいバグ修正などを行いました。 しばらく触っていると慣れてきたので、新機能も実装して入れました。

かなり便利になっているので、ぜひアップデートして (またはインストールして) お使いください。

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

バグ修正

  • 特定のケースで Evaluated but not used というエラーが出ることがあるのを修正しました
    • 例えばlen(fmt.Sprint(1)) を二回評価すると出ていた
  • おかしなトークンが入力されたらエラーを表示するようにしました
    • 例えば foo # bar と入力すると invalid token: "#" と表示します

新機能

  • 関数定義をサポートしました
    • これまでも f := func(x int) int { return x * 2 } と書くことはできましたが、今回のアップデートで func f(x int) int { return x * 2 } もサポートしました
  • :type コマンドで変数や関数の型を確認できるようにしました (ghciと同じような感じです)
  • :clear コマンドで定義した変数や関数を削除できるようにしました
  • コマンドの省略形をサポートしました
    • 例: :import に対して :i, :type に対して :t, :quit に対して :q など

その他の改善

  • Go 1.12をサポートしました
    • gocodeとgodocのアップデートもおすすめします
  • Makefileを追加しました
  • mainパッケージをcmd/gore/に移動しました
  • 起動時のヘッダーを標準エラー出力に出すようにしました (pythonと同じです)
  • 一時ディレクトリーの改善 (ディレクトリー名にgore-をつける、終了時に削除する)
  • コンパイルエラーが起きたときのメッセージ改善 (一時ファイルの名前を表示しないなど)
  • 他にも細かい改善を行いました

gore 0.4.0のスクリーンショットです。 f:id:itchyny:20190225215651p:plain

バグ報告は Issues · motemen/gore · GitHub までお寄せください。より良いGo-lifeのために、今後も開発を進めていきます。