Are you using malloc + GC in preference to smart pointers, and if so why? I thought Fil-C was just C not C++?

It doesn't seem like that is necessarily a performance win, especially since you could always use a smart pointer's raw pointer (preferably const) in a performance critical path.