関数ポインタを弄る
コンパイラを作り、SML#を勉強し、コンパイラをLLVM化し、TAPLを読みつつ、Coqを勉強し、集合論を勉強し、、、疲れました。
そこで、気分転換にスタックマシン的なLLVM用のコンパイラの関数ポインタをこうすればうまく行くんじゃないかなと思ってたので修正をしてみたところ、特に悩む事もなく対応出来てしまいました。
関数の型 TFun(Tv,List())みたいな物が()=>voidになるってだけで、LLVMのコード上ではvoid()*とポインタになるというのでうまく行くんじゃないかと思っていたのですが本当にそうでした。構造体内の関数ポインタも使えるようになりました。
immutableはないですけど、普通にゲームは作り進められそうです。