NimコンパイラをWindowsにインストールする

NimのWindows向けインストール方法をメモしておきます。
検証した環境は以下の通り。

  • Windows 10 Pro
  • Nim 0.17.2, 0.18.0, 0.19.6 (64bit)

もくじ:

インストール

NimはC言語に依存している言わばトランスパイラなので、別途Cコンパイラが必要になります。Cコンパイラ、Nimコンパイラとも基本はバイナリ一式の設置とパス(ユーザ環境変数)の設定でインストールしていきます。

公式のインストール方法はこちら

Cコンパイラの設置

NimはCコンパイラに依存しているので、どこぞからかWindows用のものを入手します。
ここでは公式ページに掲載されているもの(64bit版MinGW)を素直に導入することにしました。

任意のディレクトリに解凍し、binディレクトリへパスを通しておきます。
ユーザ環境変数Pathに追加しておけばとりあえず問題ないはず。
いつものコンパネ→システム→システムの詳細設定から環境変数の設定画面を開けます。

ただし。環境によっては名前にスペースを含むパスに設置するとエラーになる場合があるので、できれば英数かつスペースなしのディレクトリが望ましいです。
今回は例としてC:ドライブ直下にnimという名前のディレクトリを作成し、全てそこに配置することにしました。

一応、パスが通っているか確認。設置先のパスは例です。

Nim本体の設置

公式ページにあるNim本体をダウンロードします。今回は64bit版のZipファイルをダウンロードし、C:\nim以下に展開しておきます。

展開したディレクトリ直下にあるfinish.exeを実行すると一通りパスの設定ができるようになっています。以下は一応、管理者権限で開いたコマンドプロンプト等で実行した例です。以下バージョンは適宜読み替えて下さい。

設定項目は上のように表示されるメッセージの通り。
前のセクションで設置したCコンパイラを呼ぶためのパスが必要なのですが、上の例では設定ファイルに書き込むようになっていますね。

パスが通っていれば、nimコマンドを引数なしで実行するとヘルプが表示されるはずです。

インストールは以上、なのですが、うまく行かない場合は次のセクションを確認して下さい。

設定の確認

上記の手順でとりあえずインストールできているはずですが、コマンドが通らなかったりコンパイル時にエラーを吐く場合は以下を確認して下さい。

finish.exeが期待通りに実行されれば、ユーザ定義の環境変数PathにNimのパスが設定されているはずです。システムの詳細設定から確認して下さい。一部のアプリケーションではシステム側のPathを見ていることがあり、この場合には再起動が必要です。

また、(必須ではないようですが)Nimの設定にCコンパイラのbinディレクトリが指定されていることを確認します。
Nimインストールディレクトリ以下のconfig/nim.cfgファイルの中に以下が記述されているはずです。記述がなく、NimがCコンパイラを認識していないようであれば追加して下さい。

ツールの導入

VSCodeで参照しているような整形用のnimprettyなど、初期の状態ではビルドされていないようです。
インストールディレクトリにあるkochコマンドを使ってツール類をビルド/導入します。

テスト

テスト用のプログラム(testlist.nim)です。拡張子.nimで保存します。
基本はUTF-8で良いと思います。

Pythonで言うところのos.listdir()的なものを使ったサンプルです。

単純にnimファイルを指定してコンパイルすると、同じディレクトリに同じ名前の実行ファイルが吐かれます。デバッグビルドなので最適化はなし。一応リリースビルドにしたければ-d:releaseオプションを付けます。
コンパイルから実行ファイルのテストまで一連のコマンドは下記のようになります。

コンパイルの実行中に同じディレクトリにキャッシュ用のディレクトリnimcacheが作成され、トランスパイルされたCファイルやオブジェクトファイル等が出力されているのが確認できます。

このキャッシュ用のディレクトリnimcacheはgitignoreに書いておくとよいと思います。