Email list hosting service & mailing list manager

(Previous discussion continued)
Re: SRFI 170: 270 days John Cowan (06 Feb 2020 03:52 UTC)
Re: SRFI 170: 270 days Arthur A. Gleckler (06 Feb 2020 05:51 UTC)
CWD and other unresolved issues Lassi Kortela (07 Feb 2020 15:34 UTC)
Re: CWD and other unresolved issues John Cowan (07 Feb 2020 15:42 UTC)
Re: CWD and other unresolved issues Lassi Kortela (07 Feb 2020 15:47 UTC)
Re: CWD and other unresolved issues John Cowan (07 Feb 2020 18:04 UTC)
Re: CWD and other unresolved issues Arthur A. Gleckler (07 Feb 2020 18:48 UTC)
Re: CWD and other unresolved issues Per Bothner (07 Feb 2020 18:57 UTC)
(missing)
Re: CWD and other unresolved issues Per Bothner (08 Feb 2020 07:33 UTC)
Pathnames and URIs Lassi Kortela (08 Feb 2020 09:12 UTC)
Re: Pathnames and URIs Lassi Kortela (08 Feb 2020 09:20 UTC)
Re: CWD and other unresolved issues John Cowan (08 Feb 2020 18:57 UTC)
Pathname representations Lassi Kortela (07 Feb 2020 22:19 UTC)
Re: Pathname representations Per Bothner (07 Feb 2020 22:31 UTC)
Re: Pathname representations Arthur A. Gleckler (07 Feb 2020 22:36 UTC)
Re: Pathname representations Lassi Kortela (07 Feb 2020 22:50 UTC)
Re: Pathname representations John Cowan (08 Feb 2020 07:02 UTC)
Re: CWD and other unresolved issues John Cowan (07 Feb 2020 19:01 UTC)
Re: CWD and other unresolved issues Arthur A. Gleckler (07 Feb 2020 19:19 UTC)
Re: CWD and other unresolved issues Marc Feeley (07 Feb 2020 20:14 UTC)

Re: CWD and other unresolved issues Marc Feeley 07 Feb 2020 20:14 UTC

> On Feb 7, 2020, at 1:04 PM, John Cowan <xxxxxx@ccil.org> wrote:
>
> Well, only if you insist on different threads having different working directories.

Yes I insist!  One obvious example is to have different threads traverse different directory trees concurrently.  With a per-thread current-directory this can be done easily without worrying about other threads interfering with the CWD:

  (define (for-each-file proc dir-or-file)

    (define (walk dir-or-file path)
      (let ((here (cons dir-or-file path)))
        (if (eq? (file-info-type (file-info dir-or-file #f)) 'directory)
            (parameterize ((current-directory dir-or-file))
              (for-each (lambda (x) (walk x here))
                        (directory-files)))
            (proc here))))

    (walk dir-or-file '()))

  (for-each-file (lambda (x) (write x) (newline)) "/usr/local/share")

So my point is that chdir should not be defined to have an effect on the interpretation of paths for open-input-file, directory-files, etc

Marc