From 85394c5613f1f52407020abab650fda6b9da91ad Mon Sep 17 00:00:00 2001
From: nsfisis
次に、コードを評価したあとに呼んでいる標準出力と標準エラー出力に対する改行の出力について。 出力バッファから出力させるためだけなら改行を出力させなくとも
+ 2025-04-23 追記:
+
+
+ デフォルトの出力方法は
+
+ 記事末尾のリポジトリはすでにこの変更を適用済み。fflush() だけで事足りると考えたのだが、ないと動かなかったので追加した。 これにより、PHP コードの出力の後ろに余分な改行が追加されてしまう。 改行を出力せずともバッファを消費させる手段をご存知のかたはご教示願いたい。
fflush() の前に改行の出力が必要だった理由が判明したので追記する。 これは、index.mjs で標準出力・標準エラー出力へ出力する方法を指定せず、デフォルトの実装に任せているため。 Emscripten のデフォルト実装では、改行コードを出力するまで出力内容がバッファリングされ、fflush() が機能しない。
+ index.mjs の中で PHPWasm() を呼ぶとき、stdout・stderr というオプションを渡せば変更できる。
+
+ const { ccall } = await PHPWasm({
+ stdout: (c) => {
+ if (c === null) {
+ // flush the standard output.
+ } else {
+ // output c to the standard output.
+ }
+ },
+});c は null か 1バイト符号つき整数を取り、null が flush 要求を意味する。
+ stdout や stderr の完全なサンプルはそちらを参照のこと。
+ WebAssembly にコンパイルする
diff --git a/vhosts/blog/public/posts/atom.xml b/vhosts/blog/public/posts/atom.xml
index db060626..376821f4 100644
--- a/vhosts/blog/public/posts/atom.xml
+++ b/vhosts/blog/public/posts/atom.xml
@@ -7,7 +7,7 @@