Macでプログラミング環境を作った話
Mac初心者です。 今までプログラミングは仕事でも趣味でもWindows機を使っていたのですが、せっかくMBAを買ってしまったので、そろそろ開発環境を本気出して作ってみようかと思い立ち、あれこれインストールしてみました。 その辺りのメモ書きです。
Xamarin Studioを入れてみる
もちろんF# 用です。公式: Advanced IDE For iOS & Android Programming - Xamarin Studio ホットなニュース(MSの今回の発表で何が起こるのか、の私的感想 - 亀岡的プログラマ日記等参照)によれば、待っていれば公式サポートが入りそうな気配もありますが、まあそれはそれ。
キーボードショートカット等慣れないところもありましたが、順調に使い出せています。
(「インタラクティブで実行」のキーが^+return
と書かれていて何かと思ったらcontrolキー+エンターキーでした。Macの特殊キー事情はよくわかりません。)
MacPortsを入れてみる
意外と大変でした。主にバージョン違い等により。
- Xcodeは今ではAppStoreから入手可能になっていたので、その点では問題ありません。
- XcodeをインストールしてからOSを更新(->Yosemite)したのが悪いのか、portコマンドに「darwinのバージョンが違う」などと怒られます。仕方がないのでMacPortsをバージョンアップしました。
SML# 2.0.0を入れてみる
SML#, 熱いですよね、言語設計が。 前に少し触った時はWindows7+MinGW環境だったため、特に苦労は……ありましたが……(シグネチャファイルの書き方がわからない、など)。まあそれはそれとして。
公式(SML# - SML#のダウンロード)から落とすと、Portfileなるファイルが展開されます。 どうやらそれは上記のMacPortsの物であるらしい、ということで、解説ページ(Portfile の作り方 - MacPorts-JP)を見ながら導入します。
~/ports/devel/smlsharp/PortFile
に配置- 後から見直してみるとdevelじゃなくてlangカテゴリにしたほうがよかったのかもしれません。
/opt/local/etc/macports/sources.conf
をsudo付けて編集。file:///Users/{ユーザ名}/ports
を追加。
- portindexコマンド実行
port search smlsharp
として存在が認識されていることを確認して、sudo port install smlsharp
でインストール実行。LLVMなども同時に落ちてくるので待機時間が結構ありました。
インストールが終わったらsmlsharpコマンドで対話環境を立ち上げて、稼動確認します。
SML# 2.0.0 (2014-04-04 11:47:08 JST) for i686-apple-darwin14.0.0 with LLVM 3.4 # "hello world";; val it = "hello world" : string #
Gauche(Scheme処理系)を入れてみる
そろそろLisp(Scheme)も何か一つはやっておきたい感情から、ついでに導入してみます。
- せっかくMacPortsを使えるようにしたのだからと、
port search gauche
コマンドで検索してみると、本体と、パッケージ系の情報が出てきます sudo port install gauche
コマンドでインストール実行します。
goshコマンドで対話環境を立ち上げてハローワールドしてみます。
gosh> (print "Hello World!") Hello World! #<undef> gosh>
Emacsを導入してモードを設定してみる
私は今まで(殆ど)WindowsのGUIエディタばかり使っていましたし、Vimもサーバでの作業が何とかできる程度の初心者です。 ですが、世の中ではLISPといえばEmacs, MLといえばEmacsというような風潮です。 仕方がないのでこの機会にEmacsも触ってみることにします。
- 只のEmacsでは日本語対応に難があるらしいので、ここ(リリース Emacs24-with-inline-patch Emacs-24.3-with-inline-patch-R1 - MacEmacs JP - SourceForge.JP)から日本語対応版(Emacs24-with-inline-patch Emacs-24.3-with-inline-patch-R1)をダウンロードします。
Schemeの設定
Scheme用の設定はこのあたり(僕と契約してLisperになってよ!-Gaucheの開発環境を整えよう- - (define -ayalog '()))を参考にしました。
~/.emacs.d/init.el
内、goshのインストールパスだけ変更しました
(setq scheme-program-name "/opt/local/bin/gosh -i")
SMLの設定
sml-modeは……絶望的に…日本語情報が…無いような……厳しい……。
- ドキュメントはこちらからSML mode - The Emacs SML editing mode
- 本体はこちらからダウンロード(5.0.0) Emacs Lisp packages
- sml-mode-5.0.tar.gzを展開して、適当に配置して、
~/.emacs.d/init.el
に以下を追記
;;sml-modeの展開先ディレクトリにパスを通す (add-to-list 'load-path "~/.emacs.d/els/sml-mode-5.0") ;;smlsharpのコマンド実体 (setq sml-program-name "/opt/local/bin/smlsharp") ;;モードの関連付け (setq auto-mode-alist (append auto-mode-alist '( ("\\.sml$" . sml-mode) ("\\.sig$" . sml-mode) ("\\.ML$" . sml-mode)))) ;;ロード (autoload 'sml-mode "sml-mode" "Major mode for editing SML." t) (autoload 'run-sml "sml-proc" "Run an inferior SML process." t)
- 基本操作は以下のような感じ。しばらく試して様子見したいところです。
M-x sml-mode
か.sml等ファイル開くとsml-modeC-c C-s
でinteractive起動C-c C-b
でバッファの中身をinteractiveに送信
しばらくはEmacsに慣れながら入門書の写経でもしていたいと思います。