comp.lang.ada
 help / color / mirror / Atom feed
From: stt@houdini.camb.inmet.com (Tucker Taft)
Subject: Re: Standard library and distributed systems
Date: 1997/07/07
Date: 1997-07-07T00:00:00+00:00	[thread overview]
Message-ID: <ECyszs.I3M.0.-s@inmet.camb.inmet.com> (raw)
In-Reply-To: x267usl6i3.fsf@inf.fu-berlin.de


Andre Spiegel (spiegel@inf.fu-berlin.de) wrote:

: Thanks, Tucker, for your detailed reply.  You wrote:

: > Rather than removing things from these packages (which could be very
: > disruptive to existing Ada 95 code), we could envision
: > additional pragmas or rules to make them "safe."    The simplest
: > would be to have a pragma Not_Remote_Type(type); which could
: > simply mark a given type that happens to be declared in a 
: > Remote_Types package as not being allowed as a formal parameter type
: > in a remotely callable subprogram.

: The operations declared in a Remote_Types package are not "remotely
: callable subprograms", are they?  (Each partition that withes such a
: package gets its own copy; the only thing that's passed across
: partition boundaries are values of _types_ declared in such a
: package.)

: That means, for example, that Ada.Strings.Bounded doesn't make any
: "problematic" use of Ada.Strings.Maps.Character_Mapping_Function (it's
: only used as a parameter for some of the subprograms).  It would only
: be "problematic" if a Character_Mapping_Function were part of a _type_
: declared in Ada.Strings.Bounded.

: So how about this rule: a Remote_Types package may "with" a package
: that is not pure (and not Remote_Types), _provided_ that it doesn't
: make "problematic" use of it.

That would make some sense, since the body of a Remote_Types package
is completely unrestricted.  Essentially you would have to ensure
that it doesn't "reexport" evil things in its spec from some evil 
"with"ed unit.

: Maybe such a rule could enhance distributability of general Ada
: applications?  The additional rule would be even less expensive (or,
: intrusive) than an additional pragma.  (But of course it couldn't solve
: the problem of String_Access, so we'd need the pragma also.)

In general the Distributed Systems Annex was breaking new ground,
and I at least saw it as an initial cut at providing distribution
in the language.  Using the Ada/Corba bindings is another good way.
Defining a different set of pragmas is yet a third way.

Of course, the goal is to have something that is supported by
a critical mass of Ada 95 compilers, independent of whether it
is in the "official" ISO reference manual.  If you consider Annex E
as a "proof of concept" rather than as a finished product, then
identifying a small set of additional rules and pragmas to augment its
functionality seems completely appropriate, IMHO.  Getting them 
implemented by that "critical mass" is the next challenge...

--
-Tucker Taft   stt@inmet.com   http://www.inmet.com/~stt/
Intermetrics, Inc.  Burlington, MA  USA




      reply	other threads:[~1997-07-07  0:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-07-02  0:00 Standard library and distributed systems Andre Spiegel
1997-07-02  0:00 ` Samuel Tardieu
1997-07-02  0:00   ` Andre Spiegel
1997-07-03  0:00     ` Robert Dewar
1997-07-04  0:00       ` Andre Spiegel
1997-07-02  0:00 ` Tucker Taft
1997-07-02  0:00   ` Robert Dewar
1997-07-03  0:00   ` Andre Spiegel
1997-07-07  0:00     ` Tucker Taft [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox