用語集

一般

LLVM バックエンド

(Clang) コンパイラバックエンドで、LLVM 中間表現 (IR) を、指定されたマシンまたは他の言語のコードに変換します。Emscripten の場合、指定されたターゲットは JavaScript です。

ロードストアの整合性

ロードストアの整合性 (LSC) とは、特定の型の値がメモリロケーションに書き込まれた後、そのメモリロケーションからのロードが同じ型になるという要件です。したがって、変数が 32 ビット浮動小数点数を含む場合、その変数へのロードとストアは両方とも 32 ビット浮動小数点値になり、16 ビット符号なし整数などにはなりません。

注意

この定義は、Emscripten: An LLVM-to-JavaScript Compiler (セクション 2.1.1) から引用したものです。この論文には追加の詳細が記載されています。

ミニファイ

JavaScript での ミニファイ は、ソースコードの機能を変更せずに、不要な文字をすべて削除するプロセスです。より高い最適化レベルでは、Emscripten は Closure Compiler を使用して Emscripten コードをミニファイします。

リルーピング

LLVM アセンブリ ( この論文 から引用した定義) に現れる低レベルのラベルとブランチから、高レベルのループと if 構造を再作成します。

SDL

Simple DirectMedia Layer (SDL) は、OpenGL および Direct3D を介してオーディオ、キーボード、マウス、ジョイスティック、グラフィックスハードウェアへの低レベルアクセスを提供するように設計されたクロスプラットフォーム開発ライブラリです。

元のコンパイラは、他の多くのメモリモデルとコンパイルモードをサポートしていました (「コード生成モード」を参照) が、Typed Arrays Mode 2 は、他の利点の中でも、任意のコードに対する最大のサポートがあることが証明されました。

XHR

XMLHttpRequest の短縮形。Emscripten は、バイナリデータを非同期的にダウンロードするために XHR を使用します。

Emscripten ツールと依存関係

Binaryen

Binaryen は WebAssembly コンパイラツールキットであり、Emscripten は Wasm を変更および最適化するために使用します。

Clang

Clang は、C、C++、およびその他のプログラミング言語用のコンパイラフロントエンドであり、LLVM をバックエンドとして使用します。

Closure Compiler

クロージャコンパイラは、より高い最適化で Emscripten によって生成されたコードをミニファイするために使用されます。

コンパイラ構成ファイル

コンパイラ構成ファイルには、アクティブなツールと SDK が、emsdk activate を使用して定義されたとおりに保存されます。

emcc

Emscripten コンパイラフロントエンド (emcc)gcc のようなコンパイラの Emscripten のドロップイン代替品。

Emscripten コマンドプロンプト

Emscripten Windows コマンドプロンプト (emcmdprompt.bat) は、Windows でコマンドラインから Emscripten ツールを呼び出すために使用されます。

Fastcomp

Fastcomp は、JS コンパイラの後、新しい LLVM Wasm バックエンドの前である Emscripten の 2 番目のコンパイラコアでした。

Git

Git は分散リビジョン管理システムです。Emscripten は GitHub でホストされており、git クライアントを使用して更新および変更できます。

GitHub

GitHub は、wiki、タスク管理、バグ追跡など、プロジェクトベースのコラボレーション機能も提供する Git リポジトリの Web ベースのホスティングサービスです。

Emscripten プロジェクトは GitHub でホストされています。

Java

Java は、プログラミング言語およびコンピューティングプラットフォームです。高度な最適化の一部を実行するコードで Emscripten によって使用されます。必要なバージョンは、ツールチェーンの要件 に記載されています。

JavaScript

JavaScript (ECMAScript) は、主に Web ブラウザの一部として使用されるプログラミング言語であり、ホスト環境内のオブジェクトへのプログラムによるアクセスを提供します。node.js では、サーバー側のネットワークプログラミングでも使用されています。

JavaScript の asm.js サブセットは、Emscripten のターゲット出力言語です。

lli
LLVM インタープリター

LLVM インタープリター (LLI) は、LLVM ビットコードからプログラムを実行します。このツールは保守されておらず、奇妙なエラーやクラッシュが発生します。

LLVM

LLVM は、任意のプログラミング言語で記述されたプログラムの最適化を可能にするように設計されたコンパイラインフラストラクチャです。

node.js

Node.js は、JavaScript で記述されたサーバー側およびネットワークアプリケーション用のクロスプラットフォームランタイム環境です。基本的に、ブラウザコンテキスト外で JavaScript アプリケーションを実行できます。

Python

Python は、Emscripten の多くのツールを記述するために使用されるスクリプト言語です。必要なバージョンは、ツールチェーンの要件 に記載されています。

SDK 用語

以下の用語は、SDK および Emscripten SDK (emsdk) を参照する際に使用されます

emsdk

Emscripten SDK (emsdk) は、すべての SDK メンテナンスを実行するために使用され、SDK および ツールをインストール、更新、追加、削除、およびアクティブ化できます。ほとんどの操作は ./emsdk command の形式です。emsdk スクリプトにアクセスするには、Emscripten コマンドプロンプトを起動します。

ツール

SDK にバンドルされているソフトウェアの基本単位。ツールには名前とバージョンがあります。例えば、clang-3.2-32bit は、Clang v3.2 コンパイラの 32 ビット版を含むツールです。Emscripten で使用される他のツールには、JavaGitnode.js などがあります。

SDK

ツールのセット。例えば、sdk-1.5.6-32bit は、clang-3.2-32bit、node-0.10.17-32bit、python-2.7.5.1-32bit、emscripten-1.5.6 で構成される SDK です。

Emscripten SDK パッケージには、さまざまな種類があります。これらは こちら からダウンロードできます。

アクティブなツール/SDK

emsdk は、ツールSDKの複数のバージョンを保存できます。アクティブなツール/SDK は、Emscripten コマンドプロンプト でデフォルトで使用されるツールのセットです。このコンパイラ構成は emsdk 固有の設定ファイル (.emscripten) に保存され、emsdk を使用して変更できます。

emsdk ルートディレクトリ

emsdk は、任意の数の ツールSDK を管理でき、これらは emsdk ルートディレクトリサブディレクトリ に保存されます。emsdk ルートは、SDK を最初にインストールしたときに指定したディレクトリです。

SDK ルートディレクトリ

emsdk は、任意の数のツールと SDK を保存できます。SDK ルートディレクトリ は、特定の SDK を保存するために使用されるディレクトリです。これは、emsdk ルートディレクトリ を基準として、<emsdk ルート>\emscripten\<sdk ルートディレクトリ>\ のように配置されます。

サイト / Sphinx

reStructured text

このサイトのコンテンツを定義するために使用されるマークアップ言語。 reStructured text 入門 を参照してください。