remove Semaphore and use AsyncQueue instead deprecate Module.needRebuild, add Module.needBuild remove Module.unbuild add Module.invalidateBuild