Get and set current directory Lassi Kortela 21 Jul 2019 12:40 UTC
> How about a “current-directory” parameter object with > > (current-directory) => string > (current-directory string) ;; sets the current directory > > just like current-output-port, current-exception-handler, etc > > This has the advantage that each thread can manage their own current directory using “parameterize” to avoid interfeering with other threads Some OSes do support having a different working directory for each thread, but I'm not sure how portable that is. Also, for implementations where the mapping between Scheme threads and OS threads is not 1:1, a Scheme thread could switch between OS threads which could cause it to unintentionally cycle between different working directories. If you mean forgoing the OS concept of a working directory altogether, and using our own Scheme parameter only, that would go against convention so strongly (and would require vigilance in so many places) that it sounds like a huge undertaking. Almost every Unix syscall dealing with pathnames can take a relative pathname which it resolves according to the OS process/thread working dir. For applications, it may make sense to start building paths from a thread-local working directory but would there be a simple way to do that it in the SRFI? At face value it seems quite a drastic change from convention.