This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Ticket 226: Remove property-list file specs from WG1

2011-09-11 07:46:18
WG1 - Core
2011-07-04 08:39:39

In the current draft, the procedures that open or refer to files use filespecs, which are either strings in R5RS style or else property lists. The latter are more fundamental: the string filespec "foo" is equivalent to the p-list filespec (path "foo"). Property lists allow various options to be specified in addition to the file path.

There are only two uses of p-list filespecs in the current draft: the buffering key, which allows the user to specify whether ports are buffered or unbuffered, and the possibility of an implementation-dependent extension for supporting file paths which are not Scheme strings. (In Posix, a path is really a sequence of 8-bit integers with some restrictions on their values, and in Windows, it's a sequence of 16-bit integers with more restrictions on their values.)

However, it is unclear that either of these is of sufficient importance to support in WG1. Most of the time, buffering is the Right Thing, and when output buffering causes a problem, the flush-output-port procedure can be used to force output to occur. The overwhelming majority of file paths in existence map directly to strings.

This ticket proposes, therefore, that only string filespecs be defined in WG1 Scheme, as in R5RS, and that p-list filespecs be deferred to WG2.


WG1 accepted this proposal, which is already in effect in the current draft, so no change is required.