Repository navigation
Tags: dAppCore/go-process
Tags
go/v0.16.3 — Program.Find resolves executables on Windows v0.16.2 fixed lookPath in exec/ and left a byte-identical copy in os_exec_link.go untouched. Program.Find calls that one, so every consumer resolving through it kept failing with "not found in PATH" on Windows — 41 occurrences in go-inference's lane before v0.16.2 and 41 after. internal/lookpath now holds one implementation and both consumers call it; the duplication was the defect's cause, so patching in place would have guaranteed a third divergence. commandContext records a resolution failure on Cmd.Err as exec.Command does, instead of discarding it.
go/v0.16.2 — Windows executable resolution exec: no command was resolvable by its bare name on Windows. Three defects: isExecutable tested mode&0111 (Windows has no execute bit — os.Stat synthesises 0666/0444, so it rejected every file); lookPath never expanded %PATHEXT% (a command is written "git", not "git.exe"); and commandContext swallowed the resolution failure, handing os/exec a bare name that Windows then resolves relative to Cmd.Dir. Also: the path-vs-name test missed '/' on Windows. POSIX behaviour is unchanged by construction — the extension list is empty there, so candidates are the name alone and the mode bits still decide. The Windows rules are pinned hermetically (lookPathWith/isExecutableWith take the extension list as an argument), since this repo's CI is linux-only.
PreviousNext