Implement the `Platform.homePath` static method in the os module, exposing the user's home directory via libuv's `uv_os_homedir`. The implementation handles buffer resizing with dynamic allocation when `UV_ENOBUFS` is returned, aborts the fiber with an error message on failure, and registers the method in the module registry. Includes a test suite verifying the returned value is a non-empty string, resolves to a real path, and corresponds to an existing directory.
Implement uv_os_getpid() and uv_os_getppid() bindings in process.c, register them in the CLI module table, expose as foreign statics in os.wren, and add a test suite verifying both return positive integers with pid greater than ppid.
Implement a new `Process.version` foreign static method that returns the Wren version string. The C implementation uses `wrenSetSlotString` with the `WREN_VERSION_STRING` macro, and the Wren binding registers it alongside existing `Process` methods. A new test file validates the returned value is a non-empty string composed of dot-separated numeric segments.
Add a new `Process.cwd` static method that retrieves the current working directory via libuv's `uv_cwd` function. The implementation includes proper error handling that aborts the fiber with a descriptive message on failure. The foreign method is registered in the module table and exposed in the Wren API with a foreign static declaration. A test suite validates that the returned value is a non-empty string starting with "/", resolves correctly via `File.realPath`, and corresponds to an existing directory.
Add a new utility script `util/generate_projects.py` that automates regeneration of
premake project files across all supported platforms and toolchains. The script
locates premake5 via environment variable or PATH, validates its availability, and
generates projects for BSD, Linux, macOS (gmake2 and xcode4), and Windows (vs2017
and vs2019) toolchains.
The diff shows a single-character change in src/README.md, replacing square brackets with parentheses around the libuv URL to fix broken markdown link formatting.
Add uv_library_shutdown() and uv__threadpool_cleanup() functions, introduce
UV_UDP_MMSG_CHUNK and UV_UDP_RECVMMSG flags, document cpu_times fields in
milliseconds, adjust priority constants for IBM i PASE, widen ansi_parser_state
to unsigned short on Windows, refactor async spin loop with sched_yield() and
eventfd support on Linux, add ARM yield in cpu_relax(), implement
uv__process_title_cleanup() on BSD and Darwin, replace CoreFoundation
dependency with darwin-stub.h, and fix accept4 detection for FreeBSD ≥10.