From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,e6622c2c0e563df2 X-Google-Attributes: gid103376,public From: Andre Spiegel Subject: Re: Standard library and distributed systems Date: 1997/07/03 Message-ID: #1/1 X-Deja-AN: 254264201 Sender: spiegel@moon References: Organization: Freie Universitaet Berlin X-Access: 16 17 19 Newsgroups: comp.lang.ada Date: 1997-07-03T00:00:00+00:00 List-Id: 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. 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.)