Because a single-threaded process should be able to use chdir for the purpose rather than absolutizing all paths against an internal current directly.

On Thu, Apr 30, 2020 at 11:48 AM Marc Nieper-Wißkirchen <> wrote:
Am Do., 30. Apr. 2020 um 17:42 Uhr schrieb John Cowan <>:
> If the parameter has no external side effects, there can be no problem. But suppose that in a single-threaded implementation the current directory is "/foo" and a process or thread parameterizes it to "/bar".  If while the parameterize body is running, another thread or process removes "/foo", then the attempt to reset the current directory will necessarily fail.  In a multi-threaded implementation, parameterizing "current-directory" will not fail in this way, since the effects are internal only; the failure will happen the next time a relative path is used.

In what sense won't the attempt to reset the current directory in a
single-threaded implementation only internal as well? Restoring a
parameter at the end of PARAMETERIZE should never execute any code.