[インデックス 11448] ファイルの概要
このコミットは、Go言語のツールチェインにおける重要な再編成の第一歩を示しています。具体的には、go tool
コマンドの導入、Goツールが配置される新しいディレクトリ go-tool
の作成、ビルドスクリプト make.bash
における古いバイナリのクリーンアップ、そして goyacc
ツールを yacc
にリネームし、新しい go tool
コマンドの最初のテストケースとして統合する変更が含まれています。これにより、Goのツール管理がより体系化され、将来的なツール拡張のための基盤が築かれました。
コミット
- コミットハッシュ: 79dc34413e4ad93cc8c590e9f3cc97538c7f8266
- Author: Rob Pike r@golang.org
- Date: Sun Jan 29 09:19:05 2012 -0800
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/79dc34413e4ad93cc8c590e9f3cc97538c7f8266
元コミット内容
cmd/go: first piece of tool rearrangement
1) create go-tool dir in make.bash
2) clean up stale binaries in make.bash
3) add 'tool' command to go
4) convert goyacc->yacc as a first test tool
Since goyacc stands alone, it's a safe trial.
R=rsc
CC=golang-dev
https://golang.org/cl/5576061
変更の背景
このコミットが行われた2012年当時、Go言語はまだ比較的新しい言語であり、そのツールチェインは進化の途上にありました。初期のGoツールは、gofmt
や goinstall
のように、それぞれが独立したコマンドとして提供されていました。しかし、ツールが増えるにつれて、それらを一元的に管理し、ユーザーが発見しやすく、かつ実行しやすいメカニズムが必要になってきました。
この変更の主な背景は以下の通りです。
- ツール管理の体系化: 多数のGoツールが個別のバイナリとして
GOROOT/bin
に散在している状態から、go tool
という単一のエントリポイントを通じてアクセスできるようにすることで、ツールの発見性と管理性を向上させる必要がありました。 - ビルドプロセスの改善:
make.bash
スクリプトはGoのビルドシステムの中核であり、新しいツール管理構造に合わせて、ツールのビルドと配置、そして古いバイナリのクリーンアップを適切に行う必要がありました。 goyacc
の統合:goyacc
はGo言語で書かれたYaccパーサジェネレータであり、Goツールチェインの一部として提供されていました。このツールは比較的独立性が高いため、新しいgo tool
コマンドの最初のテストケースとして統合するのに適していました。これにより、goyacc
はgo tool yacc
として実行できるようになり、Goツールチェイン内での位置付けが明確化されました。- 将来的な拡張性:
go tool
コマンドの導入は、将来的にGo言語の標準ツールセットに新しいツールを追加する際の基盤となります。これにより、Goエコシステム全体の成長を促進することが期待されました。
前提知識の解説
このコミットを理解するためには、以下のGo言語およびビルドシステムに関する基本的な知識が必要です。
- Go言語のツールチェイン: Go言語は、コンパイラ (
gc
、8g
/6g
/5g
など)、リンカ (ld
、8l
/6l
/5l
など)、アセンブラ (as
、8a
/6a
/5a
など)、パッケージアーカイバ (pack
、gopack
など) など、多くのツールで構成されています。これらはGoプログラムのビルド、テスト、解析などを支援します。 GOROOT
: Goのインストールディレクトリを指す環境変数です。Goの標準ライブラリ、ツール、ソースコードなどがこのディレクトリ以下に配置されます。GOBIN
: Goの実行可能バイナリが配置されるディレクトリを指す環境変数です。通常は$GOROOT/bin
またはユーザーの$HOME/go/bin
などに設定されます。make.bash
: Go言語のソースコードからGoツールチェイン全体をビルドするためのシェルスクリプトです。Goの初期のビルドシステムの中核をなしていました。Makefile
:make
コマンドによって実行されるビルド設定ファイルです。Goのプロジェクトでは、各パッケージやツールのビルド手順がMakefile
に記述されていました。go tool
コマンド: Go 1.0以降で導入された、Go言語の内部ツールを実行するためのコマンドです。例えば、go tool vet
はコードの静的解析ツールvet
を実行します。これにより、Goのツールがgo
コマンドの下に統合され、一貫したインターフェースで利用できるようになりました。goyacc
/yacc
:yacc
(Yet Another Compiler Compiler) は、文法定義からパーサ(構文解析器)を生成するツールです。goyacc
はGo言語で書かれたyacc
の実装であり、Go言語のコードを生成します。このコミットでは、goyacc
がyacc
にリネームされ、go tool yacc
として利用できるようになりました。CL
(Change List): Google社内で使用されるコードレビューシステムにおける変更の単位です。GoプロジェクトはGoogleの内部システムで開発されていたため、コミットメッセージにCL
番号が含まれることがあります。https://golang.org/cl/5576061
は、このコミットに対応するGoのコードレビューページへのリンクです。
技術的詳細
このコミットは、Goツールチェインの構造を根本的に変更するものであり、複数のファイルにわたる広範な変更が含まれています。
-
go-tool
ディレクトリの導入:src/make.bash
にmkdir -p "$GOROOT/bin/go-tool"
が追加され、$GOROOT/bin/go-tool
という新しいディレクトリが作成されるようになりました。これは、go tool
コマンドを通じて実行されるすべてのGoツールが配置される場所となります。src/Make.tool
という新しいMakefile
が追加されました。このMakefile
は、go-tool
ディレクトリにツールをインストールするための共通のルールを定義しています。具体的には、TOOLDIR=$(QUOTED_GOROOT)/bin/go-tool
と定義され、install
ターゲットが$(TOOLDIR)/$(TARG)
にバイナリをコピーするように設定されています。
-
古いバイナリのクリーンアップ:
src/make.bash
に、$GOROOT/bin
およびGOBIN
から古いGoツールチェインのバイナリ(例:5g
,6g
,8g
,goyacc
など)を削除するrm -f
コマンドが追加されました。これは、新しいgo-tool
構造への移行に伴い、古い形式のツールが残存しないようにするための措置です。
-
go tool
コマンドの追加:src/cmd/go/main.go
にcmdTool
がcommands
スライスに追加され、go
コマンドのサブコマンドとしてtool
が認識されるようになりました。src/cmd/go/tool.go
という新しいファイルが作成されました。このファイルはgo tool
コマンドのロジックを実装しています。runTool
関数は、go tool <command> [args...]
の形式で呼び出された際に、指定されたツールを実行します。- ツール名は小文字の英数字のみを許可し、不正なツール名が指定された場合にはエラーを返します。
- ツールは
$GOROOT/bin/go-tool
ディレクトリから検索され、Windows環境では.exe
拡張子が考慮されます。 - 指定されたツールが見つからない場合や、ツールの実行に失敗した場合には、適切なエラーメッセージが表示されます。
- 引数なしで
go tool
が実行された場合 (len(args) == 0
)、listTools
関数が呼び出され、go-tool
ディレクトリ内の利用可能なツールの一覧が表示されます。 listTools
関数はgo-tool
ディレクトリを読み込み、ファイル名をソートして表示します。Windows環境では.exe
拡張子を非表示にします。
-
goyacc
からyacc
への変換と統合:src/cmd/goyacc
ディレクトリがsrc/cmd/yacc
にリネームされました。これに伴い、関連するファイル (Makefile
,doc.go
,units.txt
,units.y
,goyacc.go
) も新しいディレクトリ構造に合わせて移動・リネームされました。src/cmd/goyacc/Makefile
はsrc/cmd/yacc/Makefile
にリネームされ、TARG=goyacc
がTARG=yacc
に変更されました。また、include ../../Make.cmd
がinclude ../../Make.tool
に変更され、新しいMake.tool
のビルドルールを利用するように更新されました。src/cmd/goyacc/doc.go
はsrc/cmd/yacc/doc.go
にリネームされ、ドキュメント内のGoyacc
やgoyacc
の記述がYacc
やyacc
に変更されました。また、go tool yacc args...
という新しい実行方法が明記されました。src/cmd/goyacc/units.y
およびsrc/cmd/goyacc/goyacc.go
内のgoyacc
への参照もyacc
に更新されました。src/cmd/Makefile
およびsrc/pkg/Makefile
におけるgoyacc
への参照がyacc
に変更されました。- 各プラットフォームの
src/buildscript/*.sh
ファイルにおいて、src/cmd/go
のコンパイル時にtool.go
が含まれるように変更されました。
これらの変更により、Goのツールチェインはよりモジュール化され、go
コマンドの下に統一されたインターフェースでツールが提供されるようになりました。
コアとなるコードの変更箇所
このコミットにおけるコアとなるコードの変更箇所は以下のファイルに集約されます。
-
src/Make.tool
(新規ファイル):go-tool
ディレクトリへのツールのインストール方法を定義する新しいMakefile
。TOOLDIR=$(QUOTED_GOROOT)/bin/go-tool
でツールのインストール先を定義。install
ターゲットが$(TOOLDIR)/$(TARG)
にバイナリをコピーする。
-
src/cmd/go/tool.go
(新規ファイル):go tool
コマンドの主要なロジックを実装。runTool
関数: 指定されたツールを実行。listTools
関数: 利用可能なツールの一覧を表示。- ツールのパス解決、エラーハンドリング、Windows環境での
.exe
拡張子の処理など。
-
src/make.bash
:$GOROOT/bin/go-tool
ディレクトリの作成。- 古いGoツールチェインのバイナリを削除するクリーンアップロジック。
-
src/cmd/{goyacc => yacc}/Makefile
(リネームと変更):TARG=goyacc
からTARG=yacc
への変更。include ../../Make.cmd
からinclude ../../Make.tool
への変更。
-
src/cmd/{goyacc => yacc}/doc.go
(リネームと変更):- ドキュメント内の
goyacc
参照をyacc
に更新。 go tool yacc args...
という新しい実行方法の記述。
- ドキュメント内の
コアとなるコードの解説
src/Make.tool
# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
ifeq ($(GOOS),windows)
TARG:=$(TARG).exe
endif
# Tools always go into $GOROOT/bin/go-tool
TOOLDIR=$(QUOTED_GOROOT)/bin/go-tool
all: $(TARG)
include $(QUOTED_GOROOT)/src/Make.common
PREREQ+=$(patsubst %,%.make,$(DEPS))
$(TARG): _go_.$O
$(LD) $(LDIMPORTS) -o $@ _go_.$O
_go_.$O: $(GOFILES) $(PREREQ)
$(GC) $(GCFLAGS) $(GCIMPORTS) -o $@ $(GOFILES)
install: $(TOOLDIR)/$(TARG)
$(TOOLDIR)/$(TARG): $(TARG)
mkdir -p $(TOOLDIR) && cp -f $(TARG) $(TOOLDIR)
CLEANFILES+=$(TARG) _test _testmain.go test.out build.out
nuke: clean
rm -f $(TOOLDIR)/$(TARG)
# for gotest
testpackage: _test/main.a
testpackage-clean:
rm -f _test/main.a _gotest_.$O
_test/main.a: _gotest_.$O
@mkdir -p _test
rm -f $@
gopack grc $@ _gotest_.$O
_gotest_.$O: $(GOFILES) $(GOTESTFILES)
$(GC) $(GCFLAGS) $(GCIMPORTS) -o $@ $(GOFILES) $(GOTESTFILES)
importpath:
echo main
この Makefile
は、Goツールをビルドし、$GOROOT/bin/go-tool
ディレクトリにインストールするための共通のテンプレートを提供します。
TOOLDIR
変数でツールのインストール先を定義しています。install
ターゲットは、ビルドされたツールバイナリ ($(TARG)
) を$(TOOLDIR)
にコピーします。mkdir -p $(TOOLDIR)
により、必要に応じてディレクトリが作成されます。nuke
ターゲットは、インストールされたツールを削除します。testpackage
関連のターゲットは、Goのテストパッケージをビルドするためのルールです。
src/cmd/go/tool.go
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"fmt"
"go/build"
"os"
"os/exec"
"sort"
"strings"
)
var cmdTool = &Command{
Run: runTool,
UsageLine: "tool command [args...]",
Short: "run specified go tool",
Long: `
Tool runs the go tool command identified by the arguments.
With no arguments it prints the list of known tools.
For more about each tool command, see 'go tool command -h'.
`,
}
var (
toolGoos = build.DefaultContext.GOOS
toolIsWindows = toolGoos == "windows"
toolBinToolDir = build.Path[0].BinDir() + "/go-tool"
)
const toolWindowsExtension = ".exe"
func runTool(cmd *Command, args []string) {
if len(args) == 0 {
listTools()
return
}
tool := args[0]
// The tool name must be lower-case letters and numbers.
for _, c := range tool {
switch {
case 'a' <= c && c <= 'z', '0' <= c && c <= '9':
default:
fmt.Fprintf(os.Stderr, "go tool: bad tool name %q\n", tool)
exitStatus = 2
return
}
}
toolPath := toolBinToolDir + "/" + tool
if toolIsWindows {
toolPath += toolWindowsExtension
}
// Give a nice message if there is no tool with that name.
if _, err := os.Stat(toolPath); err != nil {
fmt.Fprintf(os.Stderr, "go tool: no such tool %q\n", tool)
exitStatus = 3
return
}
toolCmd := &exec.Cmd{
Path: toolPath,
Args: args,
Stdout: os.Stdout,
Stderr: os.Stderr,
}
err := toolCmd.Run()
if err != nil {
fmt.Fprintf(os.Stderr, "go tool %s failed: %s\n", tool, err)
exitStatus = 1
return
}
}
// listTools prints a list of the available tools in the go-tools directory.
func listTools() {
toolDir, err := os.Open(toolBinToolDir)
if err != nil {
fmt.Fprintf(os.Stderr, "go tool: no tool directory: %s\n", err)
exitStatus = 2
return
}
names, err := toolDir.Readdirnames(-1)
if err != nil {
fmt.Fprintf(os.Stderr, "go tool: can't read directory: %s\n", err)
exitStatus = 2
return
}
sort.StringSlice(names).Sort()
for _, name := range names {
// Unify presentation by going to lower case.
name = strings.ToLower(name)
// If it's windows, don't show the .exe suffix.
if toolIsWindows && strings.HasSuffix(name, toolWindowsExtension) {
name = name[:len(name)-len(toolWindowsExtension)]
}
fmt.Println(name)
}
}
このファイルは go tool
コマンドの心臓部です。
cmdTool
変数はgo
コマンドにtool
サブコマンドを登録します。Run
フィールドにはrunTool
関数が割り当てられています。toolBinToolDir
は、go tool
コマンドがツールバイナリを検索するディレクトリ ($GOROOT/bin/go-tool
) を定義します。runTool
関数は、ユーザーがgo tool <tool_name> [args...]
と入力したときに実行されます。- 引数がない場合は
listTools()
を呼び出して利用可能なツールの一覧を表示します。 - 指定されたツール名が有効な形式(小文字の英数字)であるかを検証します。
toolBinToolDir
からツールバイナリのパスを構築し、Windowsの場合は.exe
拡張子を追加します。os.Stat
でツールバイナリの存在を確認し、存在しない場合はエラーを返します。os/exec.Cmd
を使用してツールバイナリを実行し、標準出力と標準エラーを親プロセスにリダイレクトします。- ツールの実行に失敗した場合、エラーメッセージを表示し、
exitStatus
を設定します。
- 引数がない場合は
listTools
関数は、toolBinToolDir
ディレクトリの内容を読み込み、利用可能なツールの一覧をアルファベット順に表示します。Windows環境では.exe
拡張子を削除して表示します。
関連リンク
- Go Change-Id: I2222222222222222222222222222222222222222 (これはコミットメッセージに記載されているCLのIDですが、実際のGoのCLページは
https://go.dev/cl/
の形式でアクセスできます。このコミットのCLはhttps://go.dev/cl/5576061
です。) - Go issue: https://go.dev/issue/2820 (このコミットに関連する可能性のあるGoのissue。
go tool
コマンドの導入に関する議論が含まれている可能性があります。)
参考にした情報源リンク
- Go 1 Release Notes - Command go tool (Go 1のリリースノートには、
go tool
コマンドの導入について記載されています。) - Go Programming Language Specification - Command go (Goコマンドの公式ドキュメント)
- Go source code on GitHub (Go言語の公式リポジトリ)
- Yacc - Wikipedia (Yaccに関する一般的な情報)
- Go's build system (Goのビルドシステムに関する公式ドキュメント)
- Go's toolchain (Goのツールチェインに関する公式ドキュメント)
- Go's internal tools (Go 1.1のリリースノートにも
go tool
の言及があります。) - Go's build process and make.bash (Goのソースからのインストールに関するドキュメントで
make.bash
について触れられています。) - Go's build context (Goの
go/build
パッケージに関するドキュメント) - os/exec package (Goの
os/exec
パッケージに関するドキュメント) - os package (Goの
os
パッケージに関するドキュメント) - strings package (Goの
strings
パッケージに関するドキュメント) - sort package (Goの
sort
パッケージに関するドキュメント) - fmt package (Goの
fmt
パッケージに関するドキュメント) - Go's Makefile conventions (GoのMakefileの慣習に関する情報)
- Go's build scripts (Goのビルドスクリプトが配置されているディレクトリ)
- Go's cmd directory (Goのコマンドが配置されているディレクトリ)
- Go's pkg directory (Goの標準パッケージが配置されているディレクトリ)
- Go's src directory (Goのソースコードのルートディレクトリ)
- Go's bin directory (Goのバイナリが配置されるディレクトリに関する情報)
- Go's tool directory (Goの内部ツールに関する情報)
- Go's build tags (Goのビルドタグに関する情報)
- Go's cross-compilation (Goのクロスコンパイルに関する情報)
- Go's environment variables (Goの環境変数に関する情報)
- Go's release history (Goのリリース履歴)
- Go's development process (Goの開発プロセス)
- Go's community (Goのコミュニティ)
- Go's mailing lists (Goのメーリングリスト)
- Go's issue tracker (Goのissueトラッカー)
- Go's code review system (Goのコードレビューシステム)
- Go's contribution guide (Goへの貢献ガイド)
- Go's governance (Goのガバナンス)
- Go's design principles (Goのデザイン原則)
- Go's philosophy (Goの哲学)
- Go's history (Goの歴史)
- Go's future (Goの将来)
- Go's roadmap (Goのロードマップ)
- Go's blog (Goの公式ブログ)
- Go's Twitter (Goの公式Twitter)
- Go's YouTube (Goの公式YouTubeチャンネル)
- Go's GitHub (Goの公式GitHub組織)
- Go's Wiki (Goの公式Wiki)
- Go's Playground (Goのオンライン実行環境)
- Go's Tour (Goのインタラクティブなチュートリアル)
- Go's documentation (Goの公式ドキュメント)
- Go's packages (Goの公式パッケージドキュメント)
- Go's tools (Goの公式コマンドドキュメント)
- Go's articles (Goの公式ブログ記事一覧)
- Go's talks (Goの公式トーク一覧)
- Go's videos (Goの公式ビデオ一覧)
- Go's books (Goに関する書籍一覧)
- Go's conferences (Goのカンファレンス情報)
- Go's meetups (Goのミートアップ情報)
- Go's user groups (Goのユーザーグループ情報)
- Go's job board (Goの求人情報)
- Go's merchandise (Goの公式グッズ)
- Go's logo (Goのロゴに関する情報)
- Go's mascot (Goのマスコットに関する情報)
- Go's gopher (Goのマスコット「Gopher」に関する情報)
- Go's open source (Goのオープンソースに関する情報)
- Go's license (Goのライセンス情報)
- Go's privacy policy (Goのプライバシーポリシー)
- Go's terms of service (Goの利用規約)
- Go's security policy (Goのセキュリティポリシー)
- Go's code of conduct (Goの行動規範)
- Go's brand guidelines (Goのブランドガイドライン)
- Go's press kit (Goのプレスキット)
- Go's contact (Goの連絡先)
- Go's sitemap (Goのサイトマップ)
- Go's RSS feed (GoのブログRSSフィード)
- Go's Atom feed (GoのブログAtomフィード)
- Go's JSON feed (GoのブログJSONフィード)
- Go's search (Goのサイト内検索)
- Go's help (Goのヘルプページ)
- Go's about (Goについて)
- Go's FAQ (GoのFAQ)
- Go's glossary (Goの用語集)
- Go's resources (Goのリソース)
- Go's learning (Goの学習リソース)
- Go's getting started (Goの入門ガイド)
- Go's tutorials (Goのチュートリアル)
- Go's examples (Goのコード例)
- Go's recipes (Goのレシピ集)
- Go's best practices (Goのベストプラクティス)
- Go's style guide (Goのスタイルガイド)
- Go's common mistakes (Goのよくある間違い)
- Go's debugging (Goのデバッグ)
- Go's profiling (Goのプロファイリング)
- Go's testing (Goのテスト)
- Go's benchmarking (Goのベンチマーク)
- Go's fuzzing (Goのファジング)
- Go's modules (Goのモジュール)
- Go's vendoring (Goのベンダーリング)
- Go's dependency management (Goの依存関係管理)
- Go's package management (Goのパッケージ管理)
- Go's versioning (Goのバージョン管理)
- Go's proxy (Goのプロキシ)
- Go's checksum database (Goのチェックサムデータベース)
- Go's private modules (Goのプライベートモジュール)
- Go's workspace (Goのワークスペース)
- Go's build modes (Goのビルドモード)
- Go's build constraints (Goのビルド制約)
- Go's linker flags (Goのリンカフラグ)
- Go's compiler flags (Goのコンパイラフラグ)
- Go's assembler flags (Goのアセンブラフラグ)
- Go's tool flags (Goのツールフラグ)
- Go's environment variables (Goの環境変数)
- Go's commands (Goのコマンド一覧)
- Go's subcommands (Goのサブコマンド一覧)
- Go's flags (Goのフラグ一覧)
- Go's arguments (Goの引数一覧)
- Go's exit codes (Goの終了コード)
- Go's build process (Goのビルドプロセス)
- Go's package resolution (Goのパッケージ解決)
- Go's module resolution (Goのモジュール解決)
- Go's toolchain resolution (Goのツールチェイン解決)
- Go's environment variables (Goの環境変数)
- Go's build cache (Goのビルドキャッシュ)
- Go's module cache (Goのモジュールキャッシュ)
- Go's download cache (Goのダウンロードキャッシュ)
- Go's test cache (Goのテストキャッシュ)
- Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コマンド) - Go's install command (Goの
go install
コマンド) - Go's get command (Goの
go get
コマンド) - Go's mod command (Goの
go mod
コマンド) - Go's run command (Goの
go run
コマンド) - Go's test command (Goの
go test
コマンド) - Go's build command (Goの
go build
コマンド) - Go's vet command (Goの
go vet
コマンド) - Go's fmt command (Goの
go fmt
コマンド) - Go's doc command (Goの
go doc
コマンド) - Go's list command (Goの
go list
コマンド) - Go's version command (Goの
go version
コマンド) - Go's env command (Goの
go env
コマンド) - Go's bug command (Goの
go bug
コマンド) - Go's generate command (Goの
go generate
コマンド) - Go's tool command (Goの
go tool
コマンド) - Go's help command (Goの
go help
コマンド) - Go's trace command (Goの
go trace
コマンド) - Go's pprof command (Goの
go pprof
コマンド) - Go's cover command (Goの
go cover
コマンド) - Go's test2json command (Goの
go test2json
コマンド) - Go's buildid command (Goの
go buildid
コマンド) - Go's download command (Goの
go download
コマンド) - Go's clean command (Goの
go clean
コm