このセクションではバイトコードコンパイラとネイティブコードコンパイラの非互換性を解説します。以下に述べる点を除いては、これらのコンパイラが生成するコードは同じように動作するはずです。
シグナルはプログラムがヒープに割り当てを行っていないと検出されません。つまり、コードの一部が割り当てられていないときにシグナルが配送されてきても、次のヒープ割り当てまでハンドラは呼ばれません。
深すぎる再帰によって引き起こされることが多いスタックオーバーフローは、以下の方法のいずれかで補足されます。どれが用いられるかはプラットフォームに依存します。-- バイトコードコンパイラと同様に、Stack_overflow例外が投げられる。(IA32/Linux, AMD64/Linux, PowerPC/MacOSX, MS Windows 32-bit ports).
"segmentation fault"シグナルによってプログラムが終了する。 (そのほかのUnix systemsシステム)
何も起こらずに終了する。(MS Windows 64 bits).
IA32プロセッサ(Intel Pentium, AMD Athlon, etc, in 32-bit mode)において、浮動少数計算の結果が、倍精度に丸められず、拡張精度で保持されることがあります。なので、浮動少数の結果が、バイトコードとネイティブコードで異なります。一般的に、ネイティブコードで得られる結果は、"より正確"です。(丸め誤差さ精度落ちの影響を受けることが少ない)
Alphaプロセッサにおいて、無限や非正規数を扱う浮動小数演算が、"floating-point exception"シグナルで終了することがあります