I've heard that the reason why python uses reference counting rather than tracing collector is because python cannot determine the root set for its various C extensions. But provided that BDWGC(full name: Boehm-Demers-Weiser conservative garbage collector) is conservative --- can be used for C, and opensourced, why python not adopt it as its gcmodule?