]> birchwood-abbey.net Git - mit-scheme.git/commit
Rework default pathname defaults and working directory pathname.
authorTaylor R Campbell <campbell+mit-scheme@mumble.net>
Tue, 7 Jul 2020 18:35:53 +0000 (18:35 +0000)
committerTaylor R Campbell <campbell+mit-scheme@mumble.net>
Tue, 7 Jul 2020 18:42:56 +0000 (18:42 +0000)
commite6d99b2fbe944ac9f3694f69310f6090fa333c92
treed9e2dff4f3ac12e6dea10e65f28da18b51d7eac8
parent957a908533bd8e97dcdf1f82eaece110ef30be7d
Rework default pathname defaults and working directory pathname.

New logic:

- *default-pathname-defaults* is just #!default, which as an argument
  to pathname operations has the same effect as not passing it and
  implying the default pathname defaults parameter instead.

- (param:default-pathname-defaults) can be set to #f (default),
  meaning use whatever (working-directory-pathname) returns

- wrkdir.scm no longer depends on the default pathname defaults
  mechanism at all (although it is still kind of broken: it should be
  a thread-local file descriptor fit for use with openat &c.)

This way nothing gets stored in a band.

If the extra parsing turns out to be slow, we can the working
directory pathname in a string that we clear with a secondary GC
daemon, but let's wait for a measurement of slowness before
bothering.

(cherry picked from commit a0d7954f8f61e39155bf937d54be9497a3637c23)
src/runtime/pathname.scm
src/runtime/rep.scm
src/runtime/wrkdir.scm