The previous implementation used shutil.rmtree with a custom error handler to
handle read-only files on Windows, but this approach was unreliable. The new
remove_dir function uses the Windows 'rd' command for directory removal on
Windows systems, which handles read-only files correctly, while falling back
to shutil.rmtree on other platforms.
The timerGetSource function allocates a buffer and copies the source string using strncpy, which does not guarantee null termination when the source length equals the buffer size. This change explicitly sets the final character to '\0' to prevent potential buffer over-reads or undefined behavior when the returned string is used by callers.
Add libuv release library directory to LibraryPath for both Debug and Win32 configurations in wren.vcxproj. Include timer.c and timer.h source files in the project filters. Extend AdditionalIncludeDirectories with cli, module, and libuv include paths. Implement rmtree_onerror handler for permission-safe directory cleanup in libuv.py, and enable Windows libuv build via vcbuild.bat.