back

by dochtman·11y ago·view on hn ↗
Still working on a Python-like systems programming language (Rust-like memory management -- no GC, compiler in Python targeting LLVM IR).

In my march towards getting exceptions working (using Intel's Itanium exception ABI), I'm currently hacking on option types and memory management. In particular, trying to figure out how to sensibly insert destructor calls for expiring owned pointers. So far, I clean up just before "return" nodes, but this doesn't do the right thing (a) in the face of reassignments (old object stays alive), and consequently (b) in longer-running loops. I think I can do sufficiently smart liveness analsysis, but I haven't figured out a clean algorithm yet.

Code is still private for now, while I do some more experimentation to see if I can get things to work.