using old free_vars algo again
Merge branch 'master' into porting_llvm