Udon VM 向けのコンパイラを作ろうとしている[2]

- 即値があれば何でもできる回 - EXTERN 関数の一覧を列挙したところ命名規則と矛盾した名前のものが1069個も見つかった回 の二本立てです
1
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

即値もなければ基本的な算術命令すらもない命令セット、まじで何?という感じです

2019-12-21 20:28:24
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

即値がないので Int32.MaxValue / Int32.MaxValue から 1 を作って 0 から足し引きしまくって欲しい整数を得るなどの異常な発想がある

2019-12-21 20:29:50
Ram.Type-0@VRC @RamType0

@cannorin_vrc Udon Graphからだとint型変数とかは初期値指定できたよ

2019-12-21 20:32:37
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

JavaScript 記号プログラミングと同じようなアレがある あれも +[] から 0 を作って足しまくって任意の数値にしたり、[][[]] から undefined を作って文字 f,i,n,d を得て Array.prototype.find を呼ぶなどの異常な技が連発される

2019-12-21 20:34:08
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

@Ram_Type64_Mod0 それはそうなんだけどバイトコードからは直接触れないのよね…… 定数宣言すらできない状況

2019-12-21 20:34:37
madorama@VRChat @madorama_vrc

UAssembly、`PUSH 0`はできないけど`PUSH "Hello, world!"`はできるの笑う。

2019-12-21 20:37:04
榊そら @sora_sakaki_vrc

だれかudonでつかえるAPIまとめたひといないかな

2019-12-21 20:38:33
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

@sora_sakaki_vrc 今作ってるから待って(今日中にはできる)

2019-12-21 20:39:54
madorama@VRChat @madorama_vrc

@cannorin_vrc Debug.Logにしか投げてないけど普通に文字列っぽい?

2019-12-21 20:40:10
榊そら @sora_sakaki_vrc

@cannorin_vrc やったぁああああああ!!!さすが!

2019-12-21 20:41:00
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

String だけ即値あるんならなんでもできる気がしてきた

2019-12-21 20:42:31
榊そら @sora_sakaki_vrc

@cannorin_vrc そのイメージだった。つまりVRCでなにができるのか知りたい? (もちろん計算とかVRCの機能以外のも知りたいけど

2019-12-21 20:43:08
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

@sora_sakaki_vrc それなら今やってることと同じだから大丈夫だった 家帰ったら続きやるー

2019-12-21 20:43:48
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

割とやばい数あるので web アプリにして検索可能にするかも

2019-12-21 20:45:39
madorama@VRChat @madorama_vrc

@cannorin_vrc これでエラー出ないしログがこの通りだったのでString…のはず pic.twitter.com/stZ15zYC8L

2019-12-21 20:46:23
拡大
拡大
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

@madorama_vrc マジか!!!! 帰ったら試してみる!!

2019-12-21 20:46:58
𝚌𝚊𝚗𝚗𝚘𝚛𝚒𝚗 @cannorin3

即値があるならなんでもできる 1,2,3,var

2019-12-21 20:49:15
Ram.Type-0@VRC @RamType0

@cannorin_vrc なんかどうやってるのか見てきたけどUdonGraph ProgramAssetがoverrideされたメソッド内でheapに直接初期値代入してる UdonGraph ProgramAsset以外は初期値を扱えないみたい……? あとなんかここの初期値代入周りは脆弱性ありそうですね……

2019-12-21 20:57:32
madorama@VRChat @madorama_vrc

この辺りの変数の初期値は扱えるのか。 pic.twitter.com/TmDDz2jMF1

2019-12-21 20:58:58
拡大