TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
"Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
Wed, 15 Dec 1999 00:26:08 EST
text/plain; charset="us-ascii"
text/plain (47 lines)
[log in to unmask] (Tucker Taft) quoted and then wrote:

>[log in to unmask] wrote:
>> Am I wrong to be disappointed that such a defacto standard would be based
>> on
>> a C-ism (or Unix-ism) as the "environment variable" ?
>No.  Environment variables really have nothing fundamental to do
>with C.  I suppose Unix invented the term "environment variable" but
>most operating systems have some sort of process context which
>includes user-definable variables of some sort.  Things like
>current directory, current search path, current user, etc., all
>seem most conveniently and consistenly accessible via named variables,
>even if there are also special systems calls available for each
>as well.

In both VMS and MacOS the "current directory" is bifurcated, with
a device portion and a directory portion, neither stored in a
general-purpose user-defineable variables.  So far as I know
there are no general purpose calls, only special system calls
to access them.  Likewise for username on VMS, although I have
not looked at the new Mac OS 9 "user" support.

So while a portable standard might want to make use of such a uniform
string access method, in the two cases with which I am most familiar
it does not exist.  VMS does have Logical Names and DCL Symbols,
and I thought I remembered hearing that C programmers who call the
Get Environment Variable function of the C Runtime library can
get either of those separate constructs back, depending on which
exists.  I doubt that the VMS C Runtime library rules for which
gets set and which gets delivered are mirrored on any other operating
system that has two such constructs.

>Do you have some general replacement for the concept of "environment
>variables" in mind?  Note that Ada 95 has the notion of "task attributes"
>which are solving a similar problem (though Ada does not provide
>inheritance of task attributes).

My concern was more for the situation of interfacing multiple languages;
certainly providing an Ada-only capability is straightforward, as is
providing a C-only capability.  Getting all the compiler vendors to
make the same choices on all the operating systems is a little tougher.

Larry Kilgallen