# HG changeset patch # User e165727 # Date 1581783618 -32400 # Node ID ce4e57fe652c1ad8f91e62f9e910667719187f49 # Parent 05eac76e8c247d34ff92151a92fc35c51b4be1c1 update chapter3 diff -r 05eac76e8c24 -r ce4e57fe652c Paper/chapter3.tex --- a/Paper/chapter3.tex Sat Feb 15 21:20:45 2020 +0900 +++ b/Paper/chapter3.tex Sun Feb 16 01:20:18 2020 +0900 @@ -48,6 +48,18 @@ \item close(int fd) - close() は指定されたfile descreptorを閉じます. \end{itemize} + +\section{出力をSocketに書き込む際に起きた問題} +Raku では標準出力をSocketに書き込む API が Raku 側からは提供されていない. + +そのため, 通常 Code \ref{Server} のようにEVALFILEを実行した際, 出力はそのまま Server 側の標準出力に返ってしまう. + +この問題を解決するために, Raku の NativeCall を用いて Cのライブラリを使用した. + +Code \ref{Server} の26行目で dup2() を用いて 標準出力に Socket の file descreptor を割り当て, +その後 EVALFILE を実行することで出力を Client側に返すことに成功した. + + \section{通常実行との速度比較} 今回は,提案手法での実行速度と通常実行での実行速度, この二つの速度の比較を行う 題材として行うのはhelloworldを出力するだけのプログラムとフィボナッチ数列の例題である. diff -r 05eac76e8c24 -r ce4e57fe652c Paper/main.pdf Binary file Paper/main.pdf has changed