定期ミートアップ15
PR 322
before
code:txt
- TermTy
- TyRaw
- TyMeta
- TyGenMeta
- TySpe
- TySpeMeta
- TyParamRef
after
code:txt
- TermTy
- TyRaw { base_name: String, type_args: Vec<TermTy>, is_meta: bool }
- TyParamRef
skc_rustlibからShiikaメソッドを呼ぶ
Int#+は@"Int#+"というllvm関数名にしていた
ところがこの名前だとRustから呼べない
code:rust
extern "C" {
fn Int#+(...)
記号を置き換えて@Int_add_という名前になるようにした
置き換えのロジックをcrateにした
code:rust
pub extern "C" fn object_puts(_receiver: *const u8, s: SkStr) {
#[export_name = "Object_puts"]に展開される
次の作業
Refactoring ty.rs (part.2)
code:sk
class X<T>
def foo
# これができるということは
ary = Array<T>.new
# これができるということだし
p Array<T>
# これができるべきなのでは
p T
ローカル変数としてTが見えるよう整理したい
Class, Meta:Class, Metaclassとかが出てきて大変
相談
32bit環境に対応する必要はあるか