Annoying Misfeature - (nf)

utzoo!decvax!harpo!floyd!cmcl2!tihor utzoo!decvax!harpo!floyd!cmcl2!tihor
Wed Jan 26 00:11:15 AEST 1983


#N:cmcl2:4700002:000:3075
cmcl2!tihor    Jan 25 18:41:00 1983

One of the more annoying attributes of Eunice is its mapping of the
top level directories into VMS logical names.  Thus /tmp is found
be translating the VMS logical name TMP.  Although this has the occasionaly
benificial effect that a user can redirect a standard directory to 
a location of his choice for his programs (particularly handy with /tmp
when one does not have a disk quota on the device on which /tmp normally
resides.)  Unfortunately these logical names are not used as methods
of bypassing the standard mapping but in fact the default mapping is 
implemented by defining an appropriate set of SYSTEM-wide logical names.

There is another feature of VMS of use to people not runing Eunice code
by which VMS will attempt to translate any filename which has the form
of a logical name as a logical name to permit simple redirrection with
defaulting of i/o for any file.  Because of this DEC has a standard
(identical to the external routine naming specification in the manuals on
"Creating Modular Library Procedures" which requires that all such names
have the general form: <Product Abreviation><`_' or `$'><name>.  
The $ delimeter is intended for products registered with DEC while the 
underscore is intended for user products (i.e. everything else) thus
insuring that now new DEC release will collide with any user product which
happened to have chosen the same abreviation.  

Altogether a reasonable solution to a problem that could arise from the 
combination of several features.  Clearly it would be simple enough to
add code to the module which does the name translation to translate
/xyz as EUNICE_XYZ (or EUNICE$xyz) which while in technical violation of 
the spec are not too likely to be a problem given the DEC intention to 
use 1 through 3 letter codes.  If one objects to having to type the extra
letters E_xyz should be fairly safe as the only 1 letter abreviation I
can think of at the moment is C for the C compiler.  And if one wishes to 
insure compatibility one can always try translating the logical name XYZ 
if the other try fails.

As it is I have to try to explain to the computer novices (such as 
the admininstrators whome we hope will find the computer a useful and helpful
tool) and to the other non-Eunice users on the system why they can not 
refer to a file named TMP, or LIB, or USR, or BIN, etc.  I must say that I
find the inabilty to easily have a object library LIB and refer to it
without explicit extension, or a temporary file of any flavor named TMP,
is a very annoying "gotcha." 

The same problem holds true for Eunice Logical names used as the default values
of enviornment variables except that they are less likely to be used by
a non-Eunice user (HOME, PATH, TERMCAP) althoug TERM occasionaly bites me.
But these can all be defined on a per-user basis as process logical names
and thus can be removed by users who do not need them which is not true of 
the system wide definitions of TMP, LIB, etc.

We have reported the problem and I am disappointed that such a simple but annoying
problem has not been fixed.




More information about the Comp.os.eunice mailing list