Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 13079] ファイルの概要

このコミットは、Go言語の公式ドキュメント(doc/install.html)に、Goコンパイラ(gc)の最小システム要件に関する情報を追加するものです。具体的には、サポートされるオペレーティングシステムとアーキテクチャのリスト、および関連する注意事項が表形式で記載されています。また、この新しい表の表示を改善するために、doc/style.cssにわずかなスタイル調整が加えられています。

コミット

Author: Shenghou Ma minux.ma@gmail.com Date: Wed May 16 14:54:48 2012 +1000

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/ab708e357889a070247f8788c56680ff6684c142

元コミット内容

doc/install: document minimum system requirements
        Partly copied from CL 5685076.

R=golang-dev, adg, r
CC=golang-dev
https://golang.org/cl/6112064

変更の背景

このコミットの主な背景は、Go言語のインストールプロセスをより明確にし、ユーザーがGoをインストールする前に自身のシステムが要件を満たしているかを確認できるようにすることです。Go言語は複数のオペレーティングシステムとアーキテクチャをサポートしていますが、特定のバージョンや構成には制約があります。これらの情報を明示することで、ユーザーが不必要なトラブルに遭遇するのを防ぎ、スムーズな導入を促進します。

コミットメッセージに「Partly copied from CL 5685076」とあるように、この変更の一部は以前の変更リスト(Change List: Gerritにおける変更の単位)から流用されています。これは、Goプロジェクトの開発において、関連する情報や共通のパターンを再利用する一般的なプラクティスを示しています。また、「https://golang.org/cl/6112064」は、このコミットがGerritレビューシステムでどのように議論され、承認されたかを示すリンクです。これにより、変更がコミュニティによってレビューされ、合意形成されたプロセスを追跡できます。

前提知識の解説

このコミットを理解するためには、以下の技術的知識が役立ちます。

  • Go言語のコンパイラ (gc): Go言語の公式ツールチェインに含まれる標準コンパイラです。Goのソースコードをネイティブバイナリにコンパイルします。
  • gccgo: GCC(GNU Compiler Collection)をバックエンドとして使用するGoコンパイラです。gcコンパイラがサポートしない特定のプラットフォームやアーキテクチャでGoプログラムをコンパイルする際に利用されることがあります。
  • cgo: GoプログラムからC言語のコードを呼び出すためのGoツールです。cgoを使用する場合、システムにCコンパイラ(通常はGCC)がインストールされている必要があります。
  • アーキテクチャ (amd64, 386, arm):
    • amd64: 64ビットのx86アーキテクチャ(Intel 64およびAMD64)。現代のほとんどのデスクトップおよびサーバーCPUで採用されています。
    • 386: 32ビットのx86アーキテクチャ。古いシステムや一部の組み込みシステムで利用されます。
    • arm: ARMアーキテクチャ。モバイルデバイス、組み込みシステム、最近ではサーバーやデスクトップでも利用が広がっています。
  • オペレーティングシステム:
    • FreeBSD: Unix系のオープンソースOS。
    • Linux: オープンソースのUnix系OSカーネル。
    • Mac OS X: AppleのデスクトップOS。
    • Windows: MicrosoftのOS。
  • glibc: GNU C Libraryの略で、Linuxシステムで広く使用されている標準Cライブラリです。多くのLinuxアプリケーションがこれに依存しています。
  • CentOS/RHEL: Red Hat Enterprise Linux (RHEL) およびそのクローンであるCentOSは、エンタープライズ向けのLinuxディストリビューションです。特定のバージョン(例: 5.x)では、Goの要件を満たさない場合があります。
  • Xcode: Appleが提供するmacOSおよびiOSアプリケーション開発用の統合開発環境(IDE)です。これにはGCCなどの開発ツールが含まれています。
  • MinGW: "Minimalist GNU for Windows"の略で、Windows上でGCCなどのGNU開発ツールを使用できるようにするツールセットです。
  • Cygwin/MSYS: Windows上でUnixライクな環境を提供するツールです。Goのインストールにおいては、これらが不要であることが明記されています。

技術的詳細

このコミットは、Go言語の公式インストールガイドに、Goコンパイラ(gc)のシステム要件を明確に記載することを目的としています。これにより、ユーザーはGoのインストールを試みる前に、自身の環境がGoの実行に必要な最小限の条件を満たしているかを確認できます。

追加された情報は、HTMLのテーブル形式で提供されており、以下の3つの主要な列で構成されています。

  1. Operating system (オペレーティングシステム): サポートされるOSの名称とバージョン(例: FreeBSD 7 or later, Linux 2.6.23 or later with glibc)。
  2. Architectures (アーキテクチャ): 各OSでサポートされるCPUアーキテクチャ(例: amd64, 386, arm)。
  3. Notes (注意事項): 特定のOSやアーキテクチャに関する追加情報や制約(例: Debian GNU/kFreeBSD not supported, CentOS/RHEL 5.x not supported)。

このテーブルは、Goの公式コンパイラであるgcのサポート範囲を明確にしています。もしユーザーのOSやアーキテクチャがリストにない場合、gccgoコンパイラが代替として利用できる可能性が示唆されており、そのためのリンクも提供されています。

また、cgoを使用する場合にのみgccが必要であるという重要な注意書きも追加されています。これは、Goの基本的な開発にはCコンパイラが不要であることを示しており、ユーザーの混乱を避けるための配慮です。

doc/style.cssへの変更は、この新しいテーブルの表示を改善するためのものです。具体的には、table.codetable td { padding-right: 10px; }というスタイルが追加され、テーブルのセル(td)の右側に10ピクセルのパディングが適用されるようになりました。これにより、テーブル内のテキストが隣接するセルと密着しすぎず、視認性が向上します。

この変更は、Go言語のドキュメントの品質とユーザーエクスペリエンスを向上させるための、小さくも重要な改善です。

コアとなるコードの変更箇所

diff --git a/doc/install.html b/doc/install.html
index ad3eaf338b..b856836ff9 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -24,6 +24,32 @@ For information about installing <code>gccgo</code>, see
 <a href="/doc/install/gccgo">Setting up and using gccgo</a>.
 </p>
 
+<h2 id="requirements">System requirements</h2>
+<p>
+The <code>gc</code> compiler supports the following operating systems and
+architectures. Please ensure your system meets these requirements before
+proceeding. If your OS or architecture is not on the list, it's possible that
+<code>gccgo</code> might support your setup; see
+<a href="/doc/install/gccgo">Setting up and using gccgo</a> for details.
+</p>
+
+<table class="codetable" frame="border" summary="requirements">
+<tr>
+<th align="middle">Operating system</th>
+<th align="middle">Architectures</th>
+<th align="middle">Notes</th>
+</tr>
+<tr><td colspan="3"><hr></td></tr>
+<tr><td>FreeBSD 7 or later</td> <td>amd64, 386</td> <td>Debian GNU/kFreeBSD not supported</td></tr>
+<tr><td>Linux 2.6.23 or later with glibc</td> <td>amd64, 386, arm</td> <td>CentOS/RHEL 5.x not supported; no binary distribution for ARM yet</tr>
+<tr><td>Mac OS X 10.6/10.7</td> <td>amd64, 386</td> <td>use the gcc<sup>&#8224;</sup> that comes with Xcode</td></tr>
+<tr><td>Windows 2000 or later</td> <td>amd64, 386</td> <td>use mingw gcc<sup>&#8224;</sup>; cygwin or msys is not needed</td></tr>
+</table>
+
+<p>
+<sup>&#8224;</sup><code>gcc</code> is required only if you plan to use <a href="/cmd/cgo">cgo</a>.
+</p>
+
 <h2 id="download">Download the Go tools</h2>
 
 <p>
diff --git a/doc/style.css b/doc/style.css
index 7f3384c6c2..a0c6320987 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -373,6 +373,7 @@ div#blog .read {
 .toggleVisible .expanded { display: block; }\n 
 table.codetable { margin-left: auto; margin-right: auto; border-style: none; }\n+table.codetable td { padding-right: 10px; }\n hr { border-style: none; border-top: 1px solid black; }\n 
 img.gopher {\n

コアとなるコードの解説

doc/install.html の変更

このファイルには、Go言語のインストール手順に関するHTMLドキュメントが含まれています。

  • 新しいセクションの追加:
    • <h2 id="requirements">System requirements</h2> という見出しで「システム要件」セクションが追加されました。
    • このセクションの導入部では、gcコンパイラがサポートするOSとアーキテクチャについて説明し、ユーザーにインストール前に要件を確認するよう促しています。また、サポート対象外のシステムではgccgoが利用できる可能性に言及し、そのドキュメントへのリンクを提供しています。
  • システム要件テーブルの追加:
    • <table class="codetable" frame="border" summary="requirements"> というHTMLテーブルが挿入されました。このテーブルは、Goのgcコンパイラがサポートするシステム要件を構造化された形式で提示します。
    • ヘッダー行: <th>タグで「Operating system」「Architectures」「Notes」の3つの列が定義されています。
    • 区切り線: <td colspan="3"><hr></td> は、ヘッダーとデータ行の間に水平線(<hr>)を挿入し、テーブルの視覚的な区切りを設けています。colspan="3"は、このセルが3つの列にまたがることを意味します。
    • データ行: 各<tr>タグが1つのOSとアーキテクチャの組み合わせを表し、<td>タグで具体的な情報が記述されています。
      • FreeBSD: FreeBSD 7以降でamd64および386アーキテクチャをサポート。Debian GNU/kFreeBSDは非サポート。
      • Linux: Linux 2.6.23以降でglibcを使用する環境でamd64、386、armアーキテクチャをサポート。CentOS/RHEL 5.xは非サポートで、ARM用のバイナリ配布はまだないことが明記されています。
      • Mac OS X: Mac OS X 10.6/10.7でamd64および386アーキテクチャをサポート。Xcodeに付属のgccを使用する必要があることが示されています。
      • Windows: Windows 2000以降でamd64および386アーキテクチャをサポート。MinGWのgccを使用し、CygwinやMSYSは不要であることが強調されています。
  • cgoに関する注意書き:
    • テーブルの下に、cgoを使用する場合にのみgccが必要であるという補足説明が追加されました。これは、Goの基本的な開発にはCコンパイラが必須ではないことを明確にし、ユーザーの誤解を防ぎます。

doc/style.css の変更

このファイルは、Go言語のドキュメントサイトのスタイルを定義するCSSファイルです。

  • テーブルセルのパディング追加:
    • table.codetable td { padding-right: 10px; } という新しいCSSルールが追加されました。
    • これは、codetableクラスを持つテーブル内のすべてのデータセル(<td>)の右側に10ピクセルの内部余白(パディング)を設定します。
    • この変更により、システム要件テーブルの各セル内のテキストが、右側の境界線や次のセルの内容に近すぎず、より読みやすくなります。

これらの変更は、Goのインストールに関するドキュメントの正確性、網羅性、およびユーザビリティを向上させるためのものです。

関連リンク

参考にした情報源リンク

  • コミット情報: /home/orange/Project/comemo/commit_data/13079.txt
  • GitHubコミットページ: https://github.com/golang/go/commit/ab708e357889a070247f8788c56680ff6684c142
  • Go言語の公式ドキュメント (一般的な知識の確認のため)
  • Gerrit Change List (CL) 5685076 (元のコミット内容の背景を理解するため) - このCLは直接アクセスできませんでしたが、コミットメッセージからその存在と関連性を推測しました。
  • Go言語のコンパイラ、アーキテクチャ、OSサポートに関する一般的な情報源 (Web検索)