tihor (01/26/83)
#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.