Review of SRFI 170 through 3.2 I/O hga@xxxxxx (22 Apr 2020 17:13 UTC)
Re: Review of SRFI 170 through 3.2 I/O John Cowan (22 Apr 2020 20:42 UTC)
Re: Review of SRFI 170 through 3.2 I/O Lassi Kortela (22 Apr 2020 20:53 UTC)
Re: Review of SRFI 170 through 3.2 I/O John Cowan (22 Apr 2020 21:29 UTC)
Re: Review of SRFI 170 through 3.2 I/O hga@xxxxxx (22 Apr 2020 23:58 UTC)
Re: Review of SRFI 170 through 3.2 I/O Lassi Kortela (22 Apr 2020 21:36 UTC)
Re: Review of SRFI 170 through 3.2 I/O Lassi Kortela (22 Apr 2020 21:43 UTC)
Re: Review of SRFI 170 through 3.2 I/O John Cowan (23 Apr 2020 03:38 UTC)
Re: Review of SRFI 170 through 3.2 I/O Lassi Kortela (23 Apr 2020 07:02 UTC)
Re: Review of SRFI 170 through 3.2 I/O Lassi Kortela (23 Apr 2020 07:05 UTC)
Re: Review of SRFI 170 through 3.2 I/O Göran Weinholt (23 Apr 2020 10:54 UTC)
Re: Review of SRFI 170 through 3.2 I/O Marc Feeley (23 Apr 2020 11:09 UTC)
Per-thread umask Lassi Kortela (23 Apr 2020 11:30 UTC)
Re: Per-thread umask Marc Feeley (23 Apr 2020 11:44 UTC)
Re: Per-thread umask Lassi Kortela (23 Apr 2020 11:47 UTC)
Re: Per-thread umask Marc Feeley (23 Apr 2020 11:59 UTC)
Re: Per-thread umask John Cowan (23 Apr 2020 15:03 UTC)
Re: Per-thread umask Marc Feeley (23 Apr 2020 15:20 UTC)
Re: Per-thread umask Lassi Kortela (23 Apr 2020 16:02 UTC)
Re: Per-thread umask John Cowan (23 Apr 2020 16:03 UTC)
Re: Review of SRFI 170 through 3.2 I/O Lassi Kortela (23 Apr 2020 11:14 UTC)
current directory and openat() et al Lassi Kortela (23 Apr 2020 11:27 UTC)
Re: current directory and openat() et al Marc Feeley (23 Apr 2020 13:56 UTC)
Re: Review of SRFI 170 through 3.2 I/O Marc Feeley (23 Apr 2020 11:33 UTC)
Normalizing the current directory Lassi Kortela (23 Apr 2020 11:39 UTC)
Re: Normalizing the current directory Marc Feeley (23 Apr 2020 11:55 UTC)
Re: Normalizing the current directory Lassi Kortela (23 Apr 2020 12:10 UTC)
Per-thread working directory and umask proposal John Cowan (23 Apr 2020 14:13 UTC)
Re: Per-thread working directory and umask proposal Marc Feeley (23 Apr 2020 14:16 UTC)
Re: Per-thread working directory and umask proposal John Cowan (23 Apr 2020 16:07 UTC)
Re: Per-thread working directory and umask proposal Marc Nieper-Wißkirchen (23 Apr 2020 16:14 UTC)
Re: Per-thread working directory and umask proposal Marc Feeley (23 Apr 2020 16:25 UTC)
Re: Per-thread working directory and umask proposal Marc Nieper-Wißkirchen (23 Apr 2020 17:26 UTC)
Re: Per-thread working directory and umask proposal Marc Feeley (23 Apr 2020 17:55 UTC)
Re: Per-thread working directory and umask proposal Marc Nieper-Wißkirchen (23 Apr 2020 18:55 UTC)
Re: Per-thread working directory and umask proposal John Cowan (23 Apr 2020 20:12 UTC)
Re: Per-thread working directory and umask proposal Shiro Kawai (23 Apr 2020 22:17 UTC)
Re: Per-thread working directory and umask proposal Lassi Kortela (24 Apr 2020 08:43 UTC)
Re: Per-thread working directory and umask proposal Shiro Kawai (24 Apr 2020 11:27 UTC)
Re: Per-thread working directory and umask proposal Lassi Kortela (24 Apr 2020 11:37 UTC)
Re: Per-thread working directory and umask proposal Shiro Kawai (24 Apr 2020 12:22 UTC)
Re: Per-thread working directory and umask proposal Marc Feeley (24 Apr 2020 12:28 UTC)
Re: Per-thread working directory and umask proposal Marc Nieper-Wißkirchen (26 Apr 2020 09:19 UTC)
Re: Per-thread working directory and umask proposal John Cowan (27 Apr 2020 22:46 UTC)
Re: Per-thread working directory and umask proposal Shiro Kawai (27 Apr 2020 23:42 UTC)
Re: Per-thread working directory and umask proposal John Cowan (28 Apr 2020 00:42 UTC)
Re: Per-thread working directory and umask proposal Shiro Kawai (28 Apr 2020 00:56 UTC)
os-working-directory Lassi Kortela (29 Apr 2020 09:23 UTC)
Re: os-working-directory Duy Nguyen (29 Apr 2020 09:28 UTC)
current-umask Lassi Kortela (29 Apr 2020 09:43 UTC)
Windows Lassi Kortela (29 Apr 2020 09:47 UTC)
Re: Windows Lassi Kortela (29 Apr 2020 09:49 UTC)
Re: Windows John Cowan (29 Apr 2020 14:53 UTC)
Re: current-umask hga@xxxxxx (29 Apr 2020 13:14 UTC)
Re: current-umask Lassi Kortela (29 Apr 2020 13:25 UTC)
Re: current-umask Marc Feeley (29 Apr 2020 13:31 UTC)
Re: current-umask Marc Feeley (29 Apr 2020 13:45 UTC)
Re: current-umask Lassi Kortela (29 Apr 2020 14:12 UTC)
Re: current-umask hga@xxxxxx (29 Apr 2020 16:21 UTC)
Re: current-umask Lassi Kortela (29 Apr 2020 16:44 UTC)
Re: current-umask John Cowan (30 Apr 2020 04:02 UTC)
Re: os-working-directory John Cowan (30 Apr 2020 02:49 UTC)
Re: os-working-directory Lassi Kortela (30 Apr 2020 06:12 UTC)
Re: os-working-directory Sebastien Marie (30 Apr 2020 07:19 UTC)
Re: os-working-directory Sebastien Marie (30 Apr 2020 07:53 UTC)
Should the SRFI mandate current-directory per thread? Lassi Kortela (30 Apr 2020 12:14 UTC)
Re: Should the SRFI mandate current-directory per thread? Sebastien Marie (30 Apr 2020 17:00 UTC)
Re: Per-thread working directory and umask proposal hga@xxxxxx (28 Apr 2020 01:03 UTC)
Re: Per-thread working directory and umask proposal Marc Feeley (28 Apr 2020 01:42 UTC)
Re: Per-thread working directory and umask proposal Marc Nieper-Wißkirchen (30 Apr 2020 07:11 UTC)
Re: Per-thread working directory and umask proposal Marc Feeley (30 Apr 2020 11:33 UTC)
Re: Per-thread working directory and umask proposal John Cowan (23 Apr 2020 18:38 UTC)
Re: Review of SRFI 170 through 3.2 I/O Sebastien Marie (23 Apr 2020 13:32 UTC)
Definition of working directory Lassi Kortela (23 Apr 2020 13:51 UTC)
Re: Definition of working directory Marc Feeley (23 Apr 2020 14:07 UTC)
Re: Definition of working directory Sebastien Marie (23 Apr 2020 15:31 UTC)
Re: Review of SRFI 170 through 3.2 I/O Marc Nieper-Wißkirchen (23 Apr 2020 15:24 UTC)
Separate high-level and low-level APIs Lassi Kortela (23 Apr 2020 15:38 UTC)
Re: Separate high-level and low-level APIs Marc Nieper-Wißkirchen (23 Apr 2020 15:44 UTC)
Re: Separate high-level and low-level APIs Lassi Kortela (23 Apr 2020 15:48 UTC)
Re: Separate high-level and low-level APIs hga@xxxxxx (23 Apr 2020 16:19 UTC)
Re: Separate high-level and low-level APIs Lassi Kortela (23 Apr 2020 16:42 UTC)
Re: Review of SRFI 170 through 3.2 I/O hga@xxxxxx (23 Apr 2020 15:41 UTC)

Re: Per-thread working directory and umask proposal Marc Nieper-Wißkirchen 23 Apr 2020 17:26 UTC

Am Do., 23. Apr. 2020 um 18:25 Uhr schrieb Marc Feeley
<xxxxxx@iro.umontreal.ca>:

[...]

> > b) get a per-thread CWD that is a copy of foo's per-thread CWD, or
> >
> > c) get a per-thread CWD that *is* foo's per-thread CWD, such that mutations done in foo are visible in bar and vice versa?
>
> c of course… :-)  Copying the parameter (option b) would introduce a restriction (not being able to mutate) that is an arbitrary choice by the spec designer.  If the programmer wants a copy they can add a (parameterize ((current-directory (current-directory))) …) around their code.  I think it is a bad design in general to do something automatically that can’t be undone.  Also, if you argue that copying parameters is “the right thing” you may introduce performance issues when the dynamic environment contains lots of bindings.

I would argue instead that option (b) is the more general.  If you
want mutability across threads, just put the value in a box and don't
modify the parameter directly but just what's in the box. With (c), on
the other hand, you cannot get true thread local parameters, can you?
The reparameterization trick you mention does not work if the code
spawning the thread does not know about all thread-local parameters.

With respect to the performance issues, I have no simple answer yet.
It would suffice to spawn parameters on demand, which would just make
the mutation more costly, I think.

In any case, I would want that an implementation such that the body of
a parameterize form is in tail position with respect to the whole form
(which should really have become part of the standard) is easily
doable (see also my SRFI 157 and what Racket does).