[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue: PATHNAME-SYSTEM-TYPE (version 1)



    From: sandra%defun@cs.utah.edu (Sandra J Loosemore)
    Date: Thu, 25 May 89 15:38:24 MDT

    The point I've been trying to make is that any program that tries to
    construct pathnames by providing component values directly is bound to
    run into portability problems.  The file system may not support the
    concept of a particular pathname component at all.  The file system
    may impose limitations on the length of the component or on what
    characters may appear in it.  (The perverse example I've cited before
    is Cray's CTSS operating system, where files are limited to
    6-character names, and there is no concept of hosts, devices,
    directories, types, or versions.)  Components extracted from another
    pathname may not make sense in a new pathname being constructed for a
    different host.  That's why I think the right solution is really to
    deprecate MAKE-PATHNAME. 
    
But if we restricted what Common Lisp supports to what is possible in
the most restrictive existing environment we wouldn't have modern Lisp
at all.

There are a large number of widely used operating systems that shared
a set of features including hierarchical directories, hosts, types,
and sort of reasonable file name length limits.  These systems include
several Unix's, VMS, MS-DOS, OS/2, Mac OS, TOPS-20, Genera, etc.  If I
can write a program that uses these file name features in a way that
is portable across all of these systems without even having to know
the idiosyncratic syntax of the less familiar systems, I'll be a very
happy user.  The fact that my program will not run on CTSS, SCOPE,
DOS/360, etc. won't bother me very much.

I doubt that many new general purpose file systems are being designed
without the basic feature set required by these facilities.  Since we
are standardizing a language for future use, I suggest that we should
worry more about easing portable programming in the systems that we
_will_ be using than complaining that it's impossible to paper over
all of the differences between obsolete systems.