定期ミートアップ14
lib/
shiika_core
shiika_ast
shiika_parser
skc_corelib
skc_hir
skc_ast2hir
skc_hir2ll
skc_rustlib
skc_corelibだけ残作業がある
今回の進捗
skc_corelibをRustで再実装した
苦労したところ
unsafe Rust
型が合っても全然動かないことがある(それはそう)
方針
と思ったが…
unbox_i8ptr
Why does Rust generate LLVM IR in an architecture-specific way and using empty arrays for mutable static variables? - Stack Overflow
Drop alignment padding fields in type definitions in LLVM IR - compiler - Rust Internals
Tips
-> std::mem::transmute
Object#object_id
as u64でいいらしい
JSON5
JSONを少しだけ拡張したもの
コメント
trailing comma
JSONは手書きには向かない
その他の話題
型推論の論文を途中まで読んだ
質問
たとえばFileクラスをskc_rustlibで実装するとして
Fileクラスのオブジェクトがgcされたとき、ファイルは閉じられるのか?
=> 閉じられないと思われる
File.open(path)するときの処理
mem = GC_malloc(サイズ)
memにFile用のデータを入れる
GC_register_finalizer(mem, File用のfinalizer)