インタプリタ&classランナー
scala [オプション] [実行ファイル 引数]
オプションはscalacのそれ(最初のオプション群でなければならず、scala自体のオプションとの間にはただのハイフンがなければならない)の他に次の通り。
-howtorun:方法: guess(デフォルト)、script、object。guessでは、実行ファイル名(拡張子はふつう「.scala」)があればスクリプトモードで、なければ最初に実行されるオブジェクト名(名指し方はjavaのそれと同じ)と見なす(「実行ファイル 引数」がまったく無い場合は対話シェルモードで起動)。
-i: 実行ファイルをロード後対話シェルモードに移行。
-e: いわゆるワンライナー;このオプションに続くものをscalaコードとして実行。
-savecompiled: スクリプトのコンパイル結果を「スクリプト名.jar」に保存し、再度スクリプト名で実行される際にそのコンパイル済み版の方を使う。
-nocompdaemon: fsc(デフォルト)でなくscalacの方でコンパイル。
-D: Javaのプロパティ設定;用法等はjavaのそれと同じ。
対話シェルのコマンドは、「:」に続ける形で次の通り(最初の一文字だけでも可)。
help: コマンドヘルプ表示。
load スクリプトファイル名: そのスクリプトファイルをロードする。
replay: 状況リセットの上で、この時点までの有効行すべてを最初の行から逐次再評価(実行)する。
quit: 対話シェルを終了する。
コンパイラ
scalac [オプション] ソースファイル(群)
オプションは次の通り(Xで始まるものは将来変更される可能性あり)。
-g:方法: noneはデバッグ情報無し、sourceはソースファイル属性のみ、lineは行番号も含める、varsはローカル変数情報も追加、notcはさらに末尾再帰を最適化せず。
-nowarn: 警告を表示しない。
-verbose: 経過を詳細に表示。
-deprecation スイッチ: 非推奨情報もコンパイルする(on、yes)・しない(off(デフォルト)、no)。
-unchecked: 未チェックに関する警告を表示(型変数の未チェックは含まず)。
-classpath パス: javaのそれと同じ。
-sourcepath パス: ソースファイルのパスを指定。
-bootclasspath パス: scala-library.jarのあるパス。環境変数SCALA_HOME(相当)のlibディレクトリに在る場合は指定不要。
-extdirs パス(群): Scala用拡張ライブラリのパスを指定。
-d パス: 生成されるclassファイルを置くパス。
-encoding エンコーディング: ソースファイルのエンコーディング指定;デフォルトはプラットフォームのそれ。
-target: 実行VM: jvm-1.5(デフォルト)、jvm-1.4、msil(.NETまたはMono)、cldc(JavaME実行VMの1つ)のいずれか;現行バージョンでは後者2つは使えない模様。なお、Scalaの.NET対応は「JVM用ソースが.NETでも実行可能になる」レベルのもので、要するに.NETの機能をフルにサポートするものではまったく無いものであることに注意されたい。
-print: 解析後のプログラムを表示。
-optimise: 最適化する。
-explaintypes: 型エラーを詳細に報告。
-uniqid: -printで、識別子を「#ID番号」付きで表示。
-version: scalacのバージョンだけ表示して終了。
-help: オプション一覧表示。
-Xassem ファイル名: msil用アセンブラファイルを出力。
-Xassem-path パス: ソースファイルが参照するmsil用アセンブラファイルの在るパス。
-Xcheck-null: Nullable型(msilの数値用null)参照となるものを警告。
-Xdisable-assertions: assertとassume関数をコンパイルしない。
-Xexperimental: 実験的拡張を使えるようにする。
-Xlog-implicits: 機能しないimplicit要素に関する情報を表示。
-Xnojline: 内蔵jlineのではなくJava自身の標準入出力を使用する。
-Xno-uescape: Unicodeエスケープを変換しない。
-Xplug-types: アノテーション(注釈)を考慮しない。
-Xplugin: ファイル名: そのファイル名のプラグインをロードする。
-Xplugin-disable: プラグイン名: そのプラグインを無効にする。
-Xplugin-list: ロードされたプラグインを一覧表示する。
-Xplugin-require: プラグイン名: そのプラグインが無い場合はコンパイル中止。
-Xpluginsdir パス: プラグインディレクトリを指定。
-Xprint: フェイズ(群): 指定フェイズ後ごとに解析済みプログラムを表示(-printは不要); フェイズは、 initial(コンパイラ初期化)、 parse(字句解析)、 namer(内部識別子生成)、 analyze(名前と型チェック)、 refcheck(参照チェック)、 uncurry(カリー化解決)、 transmatch(パターンマッチ解決)、 lambdalift(ラムダ式解決)、 typesasvalues(型変数解決)、 addaccessors(コンスラクタ引数へのゲッタとセッタ生成)、 explicitouterclasses(内部クラス解決)、 addconstructors(デフォルトコンストラクタ生成)、 tailcall(末尾再帰最適化)、 wholeprog(プログラム全体チェック)、 addinterfaces(クラス毎にJava用インターフェース生成)、 expandmixins(ミックスイン解決)、 boxing(暗黙型変換解決)、 erasure(不要な型削除)、 icode(バイトコード生成)、 codegen(最終classファイル生成)、 terminal(コンパイル終了)、 all(全フェイズ)。
-Xprint-pos: -printで、解析木の位置も表示。
-Xprint-types: -printで、見えない型名も表示。
-Xprompt: エラーごとにプロンプト表示。
-Xresident: 標準入力をソースファイルと見なす。
-Xshow-class クラス名: クラス情報表示。
-Xshow-object シングルトン名: シングルトン情報表示。
-Xshow-phases: フェイズを表示。
-Xsource-reader クラス名: ソースファイル読み込み用ユーザ定義クラスを指定。
-Xscript シングルトン名: そのシングルトンのmain(args: Array[String])メソッド内にスクリプトファイルを取り込む(スクリプトファイル式記述のままでコンパイル可能にする、ということ)。
パッケージ共用ツール;ちなみにコマンド名は「Scala Bazaars」から。
sbaz [グローバルオプション] コマンド [コマンドオプション]
グローバルオプションは次の通り。
-d ディレクトリ: そのディレクトリをsbazローカルディレクトリ(sbaz管理下のダウンロード先ディレクトリ)として使用。
-nまたは--dryrun: 実行はせずにコマンドが返すメッセージのみ表示させる。
-vまたは--verbose: 経過を表示。
-version: sbazのバージョンを表示。
--univ ユニバース名: 指定ユニバース(共有用URI)でshare、retractを実行。
--univ-url URI: URIでユニバース指定(他は同上)。
コマンドは次の通り。
available: 現行から2つ前までのインストール可能なパッケージをリスト(-aオプションで全てリスト)。
compact: キャッシュをクリア;sbazは再インストール用にキャッシュにもパッケージを保存している。
help: ヘルプ表示(デフォルト)。
install: パッケージ1つをインストール(複数パッケージを一度にインストールできるコマンドは無い)。
installed: インストール済みパッケージをリスト。
keycreate: 新たなセキュリティキーを要求。
keyforget: そのキーを無効化。
keyknown: 会得済みキーをリスト。
keyremember: 無効化したキーを再び有効にする。
keyremoteknown: ユニバース側の会得済みキーをリスト。
keyrevoke: そのキーの削除を要請。
pack パッケージ名 ディレクトリ [URI]: 「パッケージ名-バージョン.sbp」の名でsbazパッケージ(実体はzipファイル)作成。URI指定なら「パッケージ名-バージョン.advert」の名で広告ファイルも作成(ユニバースはこの広告ファイルのみ持ち、インストールコマンドでそのURIからsbazパッケージを吸い上げ指示者のsbazローカルディレクトリへ転送する)。URIの最後には自動でそのsbazパッケージ名が付加されるので、パッケージ名を含まないURIを指定すること。パッケージングに必要な「meta/description」ファイルの記述方法は「doc/sbaz/manual」を参照。
remove: そのインストール済みパッケージを削除。
retract: shareした広告ファイルをユニバースから削除。
setuniverse: デフォルトユニバースを設定(次回セッション以降も再設定するまで有効)。
setup: sbazローカルディレクトリ作成。
share 広告ファイル名: 広告ファイルをユニバースへアップロード; 「-i description」でdescriptionをコマンドラインから入力、 「--template」でアップロードせずに広告ファイルのテンプレートを表示。
show: そのパッケージの情報を表示。
update: availableで表示されるリストをアップデートする。
upgrade: インストール済みパッケージを全て新しいバージョンへアップグレードする。
javadocのScala版(ソースファイルのdocコメントからAPIドキュメントのHTMLファイル群を生成)。現在サポートされているdocタグは次の通り: @author 作者名、 @deprecated 非推奨化時期と代替手段(とその理由)、 @exceptionまたは@throws 例外名 説明、 @param 引数名または型 説明、 @pre 前提条件、 @return 返値の型と範囲(と説明)、 @see 参照先、 @since 実装された処理系バージョン、 @todo 改善されるべき点、 @version それ自体のバージョン。
scaladoc [オプション] ソースファイル(群)
オプションは次の通り。
-d ディレクトリ: 出力ディレクトリ指定(デフォルトはソースと同じ場所)。
-access:アクセス: アクセスはpublic、protected(publicも含む)、private(すべて)のいずれか。
-windowtitle タイトル: 生成されるページのウィンドウタイトル指定。
-doctitle 文書タイトル: 生成される概要ページのタイトル指定。
-stylesheetfile スタイルシートファイル: そのスタイルシート指定でページ生成。
-header ヘッダ文: 生成されるすべてのページのヘッダを指定。
-footer フッタ文: 生成されるすべてのページのフッタを指定。
-top トップ文: 生成されるすべてのページのトップ文を指定。
-bottom ボトム文: 生成されるすべてのページのボトム文を指定。
-version: scaladocのバージョンだけ表示して終了。
-help: ヘルプ表示。
逆アセンブラ。オブジェクト名はjavaでのそれと同じ。
scalap [オプション] オブジェクト名
オプションは次の通り。
-help: ヘルプを表示。
-private: private定義も表示。
-verbose: 詳細に表示。
-version: scalapのバージョンだけ表示して終了。
-cpまたは-classpath: オブジェクトのクラスパスを指定。
高速キャッシュコンパイルサーバ。初回起動後常駐しコンパイル過程の諸情報をメモリ上にキャッシュしておくことで二回目以降のコンパイル速度を上げる。クラスパスが変更されると自動再起動するので、同一クラスパスで連続コンパイルするようなケースでないとそれほど速くはならない。なお、そのクラスパス内に外部要因(手動でのjarライブラリやファイルの差し替え等)による変更があるとキャッシュと食い違いが生じるので、明示的にコンパイルサーバをシャットダウンして再起動させる必要がある。
fsc [オプション] ソースファイル(群)
オプションはscalacのそれの他に次の通り。
-reset: コンパイルサーバのキャッシュをクリア。
-shutdown: コンパイルサーバを終了させる。
-server ホスト名:ポート番号: そのホストの指定ポート番号を利用する(普通指定不要)。
-J フラグ: コンパイルサーバのJVMへフラグを送る。