はじめに
恒例のお断りですが、この文章の内容は、筆者が所属している会社・団体とは一切関わりがありません。いわゆる「自主的な研究の成果の発表」というものです。
Eiffelのコンパイラや開発環境にあるように現役のEiffelコンパイラ/開発環境は3つですから、(著名な)プラットフォーム別に利用可能なEiffelコンパイラ/開発環境をまとめておくとちょっと便利かな、と。
で、早速まとめです。
プラットフォーム | EiffelStudio | Gobo Eiffel Compiler | Liberty Eiffel |
---|---|---|---|
Windows | x86、x86_64 | x86_64 | CYGWIN |
UNIX | x86_64、Arm64、Armv7 | x86_64 | いろいろ |
Mac | x86_64、M1、M2 | x86_64 | ○ |
以上、なのですが、これだけだと分かる人にしか分からないと思いますので、プラットフォーム別に少々解説を。
あと、そもそもEiffelは、Eiffelで書かれたプログラムをいったんCに変換して各プラットフォームのCコンパイラを利用して最終的なバイナリを生成していますので、システムにすでにCコンパイラがインストールされていることが前提となっています。(EiffelStudioで.Net向けにコンパイルする場合は別でしょうけど。)ですので、コンパイラを(ある程度)Cで書いておけば、ブートストラップができますね。
Windows向け
さすがにArm版はここでは対象としていません。
EiffelStudio
22.12(現時点での最新版)を除いて、32ビット(x86)、64ビット(x86_64)の両方に対応しているようです。(22.12は64ビット版のみ。)
Gobo Eiffel Compiler
表は64ビットで動作確認をしている、という意味であって、64ビットのWindowsでしか動作しない、という意味ではありません。Cコンパイラがインストールされていれば、32ビットでも(さらにはARM版でも?)コンパイラが作れるのではないかと思います。
Liberty Eiffel
基本的にはUNIXにのみ対応してますので、Windowsで動かしたければ、ひと工夫必要です。インストール用のスクリプトを見ると、CYGWINとありますので、CYGWIN上でコンパイラを作れそうです。
UNIX向け
以下ではLinuxとFreeBSDを取り上げていますけど、上に書いたように「システムにすでにCコンパイラがインストールされていることが前提となっています。ですので、コンパイラを(ある程度)Cで書いておけば、ブートストラップができます」なので、UNIX系のOSだったら結構広い範囲で行けるのではないかと思います。
Linux
EiffelStudio
ダウンロードできるファイルにx86_64、Arm64、Armv7の3種類ありますので、それぞれのアーキテクチャ上で動作するのだと思います。ただ、x86_64は分かるのですが、Arm64とArmv7の違いはよく分かりません。LinuxでEiffelStudioを使っている方、ぜひご教示ください。
Gobo Eiffel Compiler
x86_64で動作確認をしているというのは表のとおりですが、Debian・UbuntuとCentOSで確認しています。なので、「Linuxであればコンパイラが作れる」と期待して良いのではないでしょうか。
Liberty Eiffel
インストール用のスクリプトには「Linux」とありますので、対応しています。Debian系とかRedHat系とか細かいことは気にしないのではないでしょうか。私も、Rocky Linuxでコンパイラが作れることを確認したような、、、
FreeBSD
EiffelStudio
最新版でも対応しているようです。
バージョンが古くても構わなければパッケージに入っていますので、そちらを使うのが一番手軽なのではないでしょうか。
$pkg search eiffel
eiffelstudio-5.7_8 Complete Integrated Development Environment for Eiffel
(EiffelStudioに一時期オープンソース版がありまして、それをパッケージにしたのだと思います。現在、EiffelStudioにオープンソース版なるものはないようですので、パッケージのバージョンが今後更新されることはないでしょう。)
Gobo Eiffel Compiler
UNIXの1つとして対応しているのではないでしょうか。
Liberty Eiffel
「コンパイラに同梱されているすべてのコマンドがコンパイルされるわけではない」という制限事項がつきますが、コンパイラ(およびコンパイルに必要なコマンドは一通り)は作成されます。
なぜ知っているかと言えば、私が対応改善をコミットしたからです。
それ以外
EiffelStudio
ないようです。
Gobo Eiffel Compiler
UNIXでコンパイルできるはずなので、どんと来い、だと思います。
Liberty Eiffel
インストール用のスクリプトにはLinux、FreeBSD以外にNetBSD、Solarisとあります。ただ、それ以外の場合でも、汎用的な設定でコンパイラの作成を試みますので、基本的にはコンパイラは作成されるのではないかと思います。(ただし、「汎用的な設定」ですので、例えばガベージコレクションが機能しないとか制限がつく可能性はあります。)
Mac向け
EiffelStudio
CPUがインテル製のもの向け、Apple独自のもの(M1、M2)向け、それぞれあります。M1、M2向けにはファイル名にArm6vとあるものをダウンロードすることになりそうですが、これでいいのでしょうか。
M1、M2で動作することは間違いないのですが(リリースノートとかにそういう記載がありましたので)、M1、M2ってArm6vなんでしょうか、、、誰か教えて、偉い人。
Gobo Eiffel Compiler
「UNIXの1つ」として対応しているのではないでしょうか。
Liberty Eiffel
インストール用のスクリプトにDarwinとありますから、対応しているのだと思います。ただし、古いCコンパイラを呼び出そうとしている可能性はありますので、その辺の微調整は必要かもです。