- 追加された行はこの色です。
- 削除された行はこの色です。
* Universal eXecutable Format - 02
-(by [[K]], 2016.09.27)
** Essenでのuxfのサポート
-
-Essenではuxfdlとしてはprintfくらいしかサポートしない。これはデバッグのために提供されていて、本来は使わないことを想定している。基本的に、入出力はEssenの命令を使って行うべきで、uxf内で行うべきではない。
-uxfはもっぱらオンメモリ演算の高速化の手段を提供するだけである。
void entry(unsigend char *p)
{
...
}
-基本的にこの関数が呼び出される。データの受け渡しはpのみを使って行う。
-いや、任意のEssen文を実行できる関数がuxfdlで提供できればより良い気がする。
--じゃあ、entryの引数を UCHAR *p だけじゃなくて void *handle も付けることにしよう。このhandleはessen関数を呼ぶときにのみ使う。
-Essenからuxfにデータを渡す場合、Essen側で文字列変数を一つ作り、そこに渡したいパラメータを書いて、uxfに渡す(unsigned char *pになる)。
--uxf側では、与えられたpの一部を書き換えて終了すれば、Essenはそれを受け取ることができる。
-ではessen関数を使って、uxfからessen命令を実行する場合は?
--やはり文字列(というかバイト列だけど)を作ってそれを渡し、そこから変数を作っていく感じになると思われる。
--これをやるとなると、Essen側に、特殊な文字列型がほしくなるなあ。
---普通の文字列型: 変数や値の寿命が尽きたら、領域は解放される
---特殊な文字列型: 変数や値の寿命が尽きても、領域の解放をしない
--Essenから値を返す場合も、同じ文字列にデータを書き込んでいけばいい。そしたらuxf側でも値を受け取れる。
-しかしこうしてみると、Essenとはなんなのだろうか。
--さまざまな言語をつなぐインターフェース環境?
--そういう考え方も面白いかもしれない。
* こめんと欄
#comment