「安全なeval」別解

実は、「安全なeval」には、「(可能なら、別サーバかつ)別プロセスでgoshを起動し、そこにS式を流し込んで評価させる」という、結構シンプルな別解がある。
(別プロセスの方が死んだり、応答がなかったら「失敗」扱いにするという事になる)
実際、S式バトラーでも、eval/svに不備があった時に備えて、この方式を採用している。
ただ、この方式は、別プロセス起動のコストがかかるのと、port等の「外部表現にできないもの」を受け渡しできないという問題がある。
また、自分の作りたいものでは、「eval実行のステップ監視」や「メモリ(というか、consセル)消費量の可視化」があった方が都合が良いが、別プロセスにした場合は、その辺は(また別途に実装しない限り)諦める事になる。


しかし、もしかすると、こっちで進めるべきかも知れないと迷い始めている。
どうしたものか。


追記:
別プロセス方式で実装する場合でも、「evalのeval」も安全化する必要がある為、再帰的に「evalのeval」も更に別のプロセスとして起動する必要がある。
そうなると、結果として、ErlangやTermiteみたいな事になり、これはこれで便利に使える可能性もあるようだ(evalが終わるまで待つ必要がなくなる為)。
結局のところ、もう少し、自分が求めている部分の優先順位を考え直す必要があるようだ。
そして、絶対に譲れない部分から実装していくべきなんだろう。