Make.user from the multithreading branch.
move the codegen changes from the multithreading branch.