[ Fennel ] install
Fennel の設定
Fennel のダウンロード
パッケージ マネージャーを使用した Fennel のダウンロード
fennel スクリプトのダウンロード
Fennel バイナリのダウンロード
Fennel の埋め込み
Lua アプリケーションへの Fennel コンパイラの埋め込み
事前コンパイルの実行
テキスト エディターへの Fennel サポートの追加
Fennel への readline サポートの追加
Fennel を使用したゲームの作成
TIC-80 での Fennel の使用
LÖVE での Fennel の使用
このドキュメントでは、コンピューターでの Fennel の設定について説明します。このドキュメントでは、シェル コマンドの実行方法と UNIX のような環境での設定ファイルの編集方法を理解していることを前提としています。
注: Fennel は UNIX 以外の環境でも使用できますが、このドキュメントではそれらの環境についてはほとんど説明しません。
Fennel にはテレメトリ/スパイウェアは含まれておらず、今後も含まれません。
Fennel のダウンロード
Fennel をコンピューターにダウンロードすると、Fennel コードを実行して Lua にコンパイルできます。Fennel のインストール方法にはいくつかのオプションがあります。
パッケージ マネージャーを使用して Fennel をダウンロード
システムで使用しているパッケージ マネージャーによっては、それを使用して Fennel をインストールできる場合があります。Fennel を提供するパッケージ システムのリストについては、[wiki](https://wiki.fennel-
lang.org/Packaging) を参照してください。
Fennel のパッケージ バージョンは公式リリースより遅れている場合があり、一度に 1 つのバージョンしかサポートされないことがよくありますが、最も便利な傾向があります。
たとえば、Fedora を使用している場合は、以下を実行するだけで済みます。
`sudo dnf
install fennel`
.
fennel スクリプトのダウンロード
この方法では、システムに Lua 5.1、5.2、5.3、5.4、または LuaJIT がインストールされていることを前提としています。
この方法では、
`fennel`
リリースされた新しいバージョンを使用する場合は、スクリプトを使用してください。
fennel スクリプト をダウンロードします。
実行します
`chmod +x fennel-1.5.0`
実行可能にする署名をダウンロードし、以下を使用して一致することを確認します
`gpg --verify fennel-1.5.0*.asc`
(オプションですが推奨されます)。移動
`fennel-1.5.0`
あなたのディレクトリに
`$PATH`
、 のような
`/usr/local/bin`
注 : スクリプトの名前を次のように変更できます。
`fennel`
便宜上、バージョンを名前に残しておくこともできます。こうすると、一度に複数のバージョンの Fennel をインストールしておくのが簡単になります。
Fennel バイナリのダウンロード
Fennel バイナリをダウンロードすると、サポートされているプラットフォームを使用している場合は、Lua をダウンロードしなくてもコンピューターで Fennel を実行できます。すでに Lua がインストールされている場合は、上記のスクリプトを使用することをお勧めします。
この方法では、
`fennel`
リリースされた新しいバージョンを使用する場合は、バイナリを使用してください。
システムに応じて、以下のオプションのいずれかを選択します:
実行
`chmod +x fennel-1.5.0*`
実行可能にする署名をダウンロードし、次の方法で一致していることを確認する
`gpg --verify fennel-1.5.0*.asc`
(オプションですが推奨)。ダウンロードしたバイナリを
`$PATH`
、 のような
`/usr/local/bin`
Fennel の埋め込み
Fennel コードは、アプリケーション内に Fennel コンパイラーを組み込むか、事前コンパイルを実行することで、Lua をサポートするアプリケーション内に埋め込むことができます。Lua をサポートしていないプログラムに Fennel を埋め込むことは可能ですが、このドキュメントの範囲外です。
注 : アプリケーションに Fennel コンパイラーを埋め込む方が柔軟性が高く、推奨されます。アプリケーションに Fennel コンパイラーを埋め込むと、ユーザーは Fennel で独自の拡張スクリプトを記述してアプリケーションとやり取りでき、開発中に再ロードできます。アプリケーションの制限が厳しい場合 (たとえば、アプリケーションに埋め込める Lua ファイルが 1 つだけで、ディスクにアクセスしてさらにファイルをロードできない場合)、ビルド プロセス中に Fennel コードを Lua にコンパイルし、Lua 出力をアプリケーションに組み込む方が簡単な場合があります。
コードを配布する方法は数多くあるため、ここですべてを網羅することはできません。詳細については、配布に関する wiki ページをご覧ください。
Lua アプリケーションへの Fennel コンパイラの埋め込み
Fennel コンパイラをコード リポジトリに追加し、Lua からロードできます。
ビルド
`fennel.lua`
実行することによって
`make`
ソースチェックアウトで追加
`fennel.lua`
コード リポジトリに追加します。
3. Lua コードに次の行を追加します。
require("fennel").install().dofile("main.fnl")
テーブルを渡すことで、フェンネルコンパイラにoptionsを渡すことができます。
`install`
機能。
必ず
`fennel.lua`
ライブラリ全体ではなく、
`fennel`
実行可能ファイル。
事前コンパイルの実行
アプリケーションのターゲット システムに Fennel コンパイラを簡単に追加できないが、Lua がインストールされている場合は、Fennel は事前コンパイル (AOT) を提供します。これにより、コンパイルできます。
`.fnl`
ファイルを
`.lua`
アプリケーションを出荷する前に
ファイルを更新する。
このセクションでは、
`Makefile`
このコンパイルを自動的に実行します。別のビルドシステムを使用する場合は、それを適応させることができます。
次の行を
`Makefile`
./fennel --compile $< > $@
ビルドターゲットが
`.lua`
たとえば、すべての
`.fnl`
ファイルには対応する
`.lua`
ファイル:
OUT := $(patsubst %.fnl,%.lua,$(SRC))
myprogram: $(OUT)
[...]
注 1 : 事前コンパイルは、作業内容が最適な起動時間を必要とする場合にも役立ちます。「Fennel は高速にコンパイルされますが、コンパイルしなくても済むほど高速ではありません。" -- jaawerth
注 2 : 次のものを含めることをお勧めします
`fennel`
ビルド時にマシンにインストールされている Fennel の任意のバージョンに頼るのではなく、リポジトリ内のスクリプトを使用して一貫した結果を取得します。## テキスト エディターに Fennel サポートを追加する
Fennel コードはどのエディターでも記述できますが、エディターによっては他のエディターよりも使いやすいものもあります。ほとんどの人は、構文の強調表示、自動インデント、区切り文字の一致のサポートが便利だと感じています。これらの機能がないと、作業が面倒に感じるからです。他のエディターは、統合された REPL、プログラム編集中のライブリロード、ドキュメントの検索、ソース定義へのジャンプなどの高度な機能をサポートしています。[wiki](https://wiki.フェンネルラング。Fennel をサポートするエディターのリストについては、
org/Editors を参照してください。エディターが言語サーバー プロトコル (LSP) をサポートしている場合は、fennel-ls を使用すると、エラーが強調表示され、ナビゲーションが改善されます。## Fennel に readline サポートを追加
Fennel に付属するコマンドライン REPL は、
`fennel`
スクリプトはすぐに使用できますが、組み込みの行リーダーはユーザーエクスペリエンスが非常に制限されています。[GNU Readline](https://tiswww. を追加しています。場合。edu/php/chet/readline/rltop。html) のサポートにより、次のようなユーザーフレンドリーな機能が有効になります:
すべてのローカル、マクロ、および特殊フォームを補完できる REPL のタブ補完
ナビゲート、検索 (
`ctrl+r`
)、オプションでディスクに保存して、以前の REPL セッションからの入力を検索できるようにします行ナビゲーションを向上させるために、readline のカスタム サポートを介して Emacs (デフォルト) または vi キー バインディング エミュレーションを使用します
追加の readline 機能をオプションで使用します
`~/.inputrc`
一致する括弧の点滅やカラー出力(下記参照)など
[readline の wiki ページ](https://wiki.フェンネルラング。システムにインストールして設定する方法の詳細については、Readline (英語) を参照してください。## Fennel でゲームを作る
Fennel でゲームを作るための 2 つの主なプラットフォームは
TIC-80 と [LÖVE](https://love2d.org/)。TIC-80 は、コードを書いたり、アートをデザインしたり、音楽を作曲したり、ゲーム用のマップをレイアウトしたりできるシミュレートされたコンピューターとして機能するソフトウェアです。TIC-80 を使用すると、作成したゲームを簡単に公開して他の人と共有できます。TIC-80
は、レトロゲームスタイルをエミュレートするために、低解像度や限られたメモリなどの制限を導入します。LÖVE は、Lua プログラミング言語用のゲーム作成フレームワークです。LÖVE は、外部リソースからインポートして任意の解像度やメモリを使用できる点で TIC-80 よりも柔軟性がありますが、ゲームの作成がより複雑になり、ブラウザーでの実行がより困難になるという欠点があります。TIC-80 と LÖVE はどちらも Windows、Mac、Linux システム間でクロスプラットフォーム サポートを提供していますが、TIC-80 ゲームはブラウザーでプレイできますが、LÖVE ゲームはより複雑なサードパーティ ツールがなければプレイできません。フェンネル wiki には、両方のシステムで作成された多くのゲームへのリンクがあり、学習できます。### TIC-80 での Fennel の使用
TIC-80 には Fennel のサポートが組み込まれています。組み込みのテキストエディタを使用する場合は、他のツールは必要ありません。TIC-80を起動して実行するだけです。
`new
fennel`
コンソールで開始します。
TIC-80 wiki には、使用する関数と重要な概念が記載されています。
すべての TIC-80 ゲームでは、ソースとアセットを表示および編集できます。この Conway's Life ゲームを読み込んで、作成方法を確認してください。
「開始」をクリックして開始します。
Esc キーを押して「ゲームを閉じる」をクリックします。
もう一度 Esc キーを押してコードを表示します。
LÖVE で Fennel を使用する
LÖVE には Fennel のサポートが組み込まれていないため、上記の Fennel の埋め込みと同様に、自分でサポートを設定する必要があります。
この LÖVE のプロジェクト スケルトン では、Fennel のサポートを設定する方法と、ゲームの実行中にデバッグするためのコンソール ベースの REPL を設定する方法を説明します。
Lua 固有のドキュメントについては、LÖVE wiki を参照してください。See Fennel を使用して、任意の Lua スニペットが Fennel に翻訳された様子を確認してください。