このプロジェクトについて

8f4eは、アルゴレイブイベントでの生成音楽パフォーマンスのために作られた、スタック指向プログラミング言語およびライブコードエディタです。このモノレポには、コンパイラ、専用ランタイム、ブラウザベースのビジュアルコードエディタが含まれています。エディタはREPLスタイルのループ(編集、コンパイル/評価、出力の観察)に従いますが、ターミナルベースではなくUI駆動型です。 ## パッケージアーキテクチャ このプロジェクトはNxモノレポとして構成され、以下のパッケージがあります: - **compiler**: 8f4eコードをWebAssemblyに変換するコアコンパイラ。言語仕様、プロジェクトプリパーサ、サブプログラムコンパイル(トークナイザ、定数リゾルバ、メモリプランナ、メモリ参照リゾルバ、メモリデフォルトリゾルバ、セマンティック参照リゾルバ、スタックアナライザ、セマンティックユーティリティ)、wasmコード生成、stdlibのサブパッケージを含みます。 - **editor**: エディタ製品パッケージ。compiler-worker(Web Workerラッパー)、editor-default(デフォルトのコンパイラ、ランタイム、ストレージ、サンプル)、editor-core(状態管理を備えた最小限の再利用可能なエディタ、WebGLを使用したWeb UI)、editor-website(デプロイ可能なウェブサイト)、およびAudioWorkletとWeb Worker用のランタイムを含みます。 - **examples**: サンプルモジュールとプロジェクト。 - **cli**: 8f4eプロジェクトファイルをコンパイルするためのコマンドラインインターフェース。 - **metrics-dashboard**: リリースメトリクス用のローカルダッシュボード。 - **config**: 共有ツールと設定ヘルパー。 ## 開発 1. 依存関係をインストール:`npm install` 2. すべてのパッケージをビルド:`npx nx run @8f4e/editor-website:build` 3. 開発サーバーを起動:`npx nx run @8f4e/editor-website:dev`(アプリはhttp://localhost:3000) `npx nx graph`を使用してパッケージの関係を確認できます。