𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗
@cannorin3
よく考えたらループの中で関数オブジェクト作られたらクロージャの環境保存で malloc 発生するんで UdonVM で第一級関数無理じゃん
2020-01-07 18:55:51
Ram.Type-0@VRC
@RamType0
@cannorin_vrc 再起呼び出しにおけるローカル変数の領域確保なら型別にローカル変数退避用のスタック用意して関数呼び出し前に全部スタックにぶち込めば大丈夫だと思う デリゲートも問題ないはず
2020-01-07 19:01:39
Ram.Type-0@VRC
@RamType0
@cannorin_vrc 何でもボクシングなしで積める.NETの VMのスタックに対して余りにも VM自身のスタックが貧弱すぎる
2020-01-07 19:09:02
Ram.Type-0@VRC
@RamType0
@cannorin_vrc ちなみに唯一最大の理論上ですら解決不能な問題はtry catchの欠如 これが何とかなればILの命令P/Invoke以外全部1:1で変換できるはず
2020-01-07 19:14:03
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗
@cannorin3
めっちゃリツイートされてるけどそんなに Udon の関数検索したいことってある?私はコンパイラ作ってるのでしたいですが……
2020-01-07 20:00:26
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗
@cannorin3
多相な関数(含: 型クラス制約)はアセンブラでは全てインライン展開することにした(Udon の event としてはコンパイルしない)
2020-01-08 18:32:31
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗
@cannorin3
ユーザにカリー化について考えさせなくて済むようにタプルを入れるのと,部分適用を実装するのと,クロージャに対応するのと,再帰関数に対応するのが全て同じこと(=malloc 自前実装)なので,どれか一つでも入れるかどうか迷ってしまう
2020-01-08 19:21:23