#! (was Re: file attributes)

Guy Harris guy at auspex.auspex.com
Sun Jun 30 08:49:31 AEST 1991


>You left out the part where I said that *now* I would indeed make it
>transparent.

I left it out because it was irrelevant - I would have wanted it done
transparently at *any* time, no matter how few programs would allegedly
have to have been changed.

>At the time it was done, I don't think the existing
>software base was so large that changing those cases that wanted to be
>able to run shell scripts would have been unreasonable, and it would
>have given programmers a choice of whether they wanted to exec objects
>or run programs (see Statement of Religion, below).

I follow a different faith, I guess.  I don't *want* to give programmers
that choice; they might make the wrong choice and, for me, the wrong
choice is always "only run executables".  I don't want some programmer
trying to second-guess me - or even *forgetting* to update their program
to use the new call.  Consider how many bits of SVR3.x came out without
being converted to use the directory library, and fell flat on their
faces when used over NFS; those probably weren't deliberate choices,
somebody just forgot to update the program.

(I also don't like the convention implemented by some shells, wherein
they treat anything that they got an ENOEXEC error from as if it were a
shell script.  Fine back in the days when a file system was unlikely to
have executable images on it other than images for the machine to which
the disk containing the file system was directly attached; not so nice
if you can access VAX and SPARC and i386 and 68K and MIPS and...
binaries via some distributed file system.

Some scheme by which interpreted scripts could be explicitly designated
would have been better.)



More information about the Comp.unix.wizards mailing list