Pharoを自分のマシンにインストールして、Exercismの演習を解けるようにしましょう
Pharoをインストールするもっとも簡単な方法は、ターミナルのコマンドラインからzero confダウンロードを使うことです。
注意:すでにインストールされているものをアップグレードしようとしている場合は、アップグレード手順を参照してください。
UNIX系のシェルがインストールされていないWindowsユーザーは、下記のWindowsへのインストールの手順に進んでください。
Linuxに詳しい方は、Linuxハッカー向けインストールを参照するとよいでしょう。
Linux/OSXの場合(Exercismをインストールし、Pharoトラックに参加していることを前提とします)、/Exercism/pharo-smalltalkディレクトリに移動して、次のように入力します。
curl https://get.pharo.org/64/ | bash
そして、次の「ロードスクリプト」を貼り付けて、Exercismのツールを組み込んだPharoを起動します。
./pharo-ui Pharo.image eval "
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
"
ツールの読み込み中にTIMEOUTの問題が起きた場合は、Pharoを終了し、次のように入力してgitキャッシュをクリアしてください。
rm -rf pharo-local/iceberg/
その後、上記の./pharo-ui ...の例をもう一度実行します。
それでも問題が解決しない場合は、Pharo Communityページで紹介されているPharo Discordチャンネルにアクセスしてください。
すべてが正しく動作していれば、画面いっぱいに読み込みのプログレスバーが点滅し、その後System Browserウィンドウが表示されます。
ヒント: Pharoを終了するときは、変更を保存してください(Pharoメニューを開き、「Save and Quit」を選択します)。 これで、次のように入力するだけで、Exercismが読み込まれた状態のPharoを起動できます。
./pharo-ui Pharo.image
Windows向けのコマンドラインツールの前提条件については、まだ最適な方法を検討中です。ただし、Windows Pharo Launcher(複数のPharoイメージを管理するのに便利なツール)を使えば、グラフィカルにPharoをインストールすることもできます。このランチャーは、GUIのほうが好みであれば、OSXやLinuxでも利用できます。
ダウンロードした.msiファイルを実行して、Pharo Launcherをインストールします。
Pharo Launcherを起動します。
左上隅にある「New」をクリックします。
ウィンドウ内のテンプレートカテゴリから「Official distributions」を選択します。
Exercismの演習には、Pharoイメージテンプレートの一覧から最新の安定版リリースを選びます(現在は「Pharo 10.0 64-bit (stable)」が推奨されています)。
イメージテンプレートをクリックして選択し、名前を付けてから、下部にあるイメージ作成ボタン(オレンジ色の歯車の形)をクリックします。

テンプレートのダウンロードが完了すると、右側のExisting Imagesテーブルに表示されます。それをクリックし、次に上部にある起動ボタン(緑色の_再生_矢印)をクリックします。

Pharoイメージが起動したら、_Browse_メニューから_Playground_を選んでPlaygroundを開きます。またはctrl + o + wを使います。

最後に、次のスニペットをPlaygroundにコピー&ペーストします。
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
次に、貼り付けたコードをすべて選択し、右クリックしてメニューから_Do it_を選んで評価します(またはctrl + dを使います)。
すべてが正しく動作していれば、画面いっぱいに読み込みのプログレスバーが点滅し、その後System Browserウィンドウが表示されます。
Pharoを起動すると、System BrowserにWelcomeプロジェクトが表示されます(ヒント: このウィンドウを閉じてしまった場合は、Tools|System Browserメニューから新しいウィンドウを開けます)。

System Browserの左上のパネルには、環境内のパッケージが表示されます。インストールスクリプトによってExercismというパッケージがすでに設定されており、その中にWelcomeというサブプロジェクトタグが含まれていることがわかるでしょう。2つ目のパネルにはクラスが表示され、ここにもWelcomeというクラスがあります。クラスのパネルの下には4つのラジオボタンがあります。「Flat」(パッケージ内のクラスを表示)、「Hier.」(クラス階層を表示)、「Inst. side」(インスタンスメソッドを表示)、「Class side」(クラスメソッド/コンストラクターを表示)です。
Commentタブをクリックすると、Pharo Exercismを使うための最新の手順が表示されます。コメントを読んで、最初のテストを実行してみましょう。
ファイルベースの言語であれば、この時点で通常ターミナルに切り替えて、Exercism CLIを使って次の演習を取得します。Pharoも同じようにファイルを扱えますが、この環境はむしろ生きたオブジェクトを扱うように作られています。面白いことに、クラスもメソッドもソースコードも、Pharoにある他のすべてと同じようにオブジェクトです。このことは、このトラックを進めていく中で詳しくわかってきます。
Exercismでは、IDEの中からPharoの演習を取得して提出できるプラグインを用意しています。演習のパッケージ(ここでは左上のパネルにあるWelcomeパッケージ)を右クリックし、Exercism | Fetch Exerciseメニュー項目を選ぶだけです。演習名(例:hello-world)の入力を求められるので、入力すると自動的に取得されます。
演習名は、Pharoトラックのページ(右端)にある各演習の説明で確認できます。Downloadの手順に、各演習のキーを含むCLI文字列が載っています。CLI手順の隣にあるコピーボタンを使って、その文字列全体を取得プロンプトに貼り付けることもできます(キーは自動的に抽出されます)。
有効な演習を入力すると、プラグインが該当するコードを取得してSystem Browserに表示し、テストを使ったコーディングを始められる状態になります。
すべてのテストが通ったら、演習のパッケージで同じコンテキストメニューを使って解答を提出できます(パッケージタグを右クリックし、Exercism | Submit Exercise...を選択します)。

最後に、Exercism | View Track ProgressメニューからExercismのウェブサイトを開くと、他にどんな演習がアンロックされたかを確認できます。また、自分の解答についての質問を投稿して、メンターに読んでもらうこともできます。
知っていましたか: Pharoを起動するとき、実際には実行イメージのスナップショットを復元しています。これはVMwareのOSイメージに似ています。これは強力な仕組みで、作業を途中で中断できます。デバッグ中であっても可能です。次にPharoを起動し直すと、復元されたデバッガーでコードのステップ実行の続きを進めたり、リファクタリングの続きを行ったりできます。
セキュリティ上の問題でCLIトークンをリセットする必要がある場合は、Exercismの設定ページにアクセスし、トークンをリセットするボタンを使ってください。リセットしたら、Playgroundで次のコードを評価して、Pharo Exercismの古いトークンをクリアする必要があります。
ExercismHttpClient
reset;
promptForToken.
ときどき、Pharo Exercismイメージ内のライブラリを更新していただく必要があります。こちらの手順に従ってください。