# HG changeset patch # User anatofuz # Date 1550476049 -32400 # Node ID b1444ad4140e8776fbb01f4dad72d052f2cc4cbe # Parent 8badccde37ac9a101fd0493694bcdf90585ec916 update diff -r 8badccde37ac -r b1444ad4140e paper/chapter5.tex --- a/paper/chapter5.tex Mon Feb 18 16:39:37 2019 +0900 +++ b/paper/chapter5.tex Mon Feb 18 16:47:29 2019 +0900 @@ -60,3 +60,8 @@ \lstinputlisting[frame=lrbt, label=cbc_sync, caption=CbCMoarVMのデータ同期]{./codes/sync.c} +また、 CbCコンパイラが一般的に使われておらず、 CbCコンパイラのバグ修正や、 gcc、 llvm/clang のバージョン追従を行っていく必要がある。 +CbCコンパイラは、 末尾再帰(tail call)の強制を行っているが、 MoarVMなどの巨大なプロジェクト上では、 コンパイル時に強制させる際の処理の実装が困難でもある。 +これに伴って、 CodeGearでの不要なスタック操作命令を完全に排除できていない為、 CbCの利点が損なわれている箇所が存在する。 + +CbCからC言語レベルの処理に戻る際は環境付き継続を行う必要があるケースが有り、 この実装を行うためにコードの量や複雑さが高まってしまうとも考えられる。 diff -r 8badccde37ac -r b1444ad4140e paper/main.pdf Binary file paper/main.pdf has changed