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,3db17e1869f3a33d X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Ada95 Streams Question Date: 1996/06/24 Message-ID: #1/1 X-Deja-AN: 162550694 references: <9606232338.AA12517@nile.gnat.com> <4qlshm$1j9e@info4.rus.uni-stuttgart.de> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-06-24T00:00:00+00:00 List-Id: Michael says: The first problem arises when you try to exchange stream data files between computers of different architectures. This is just not foreseen by the Ada 95 standard (see implementation advice in RM and current practice of GNAT). The *default* implementation of streams in GNAT indeed follows the IA in the RM. However GNAT is set up to make it very easy to choose some other implementation, and we have heterogenous distribution very much in mind. All primitive data is converted to and from stream format using a simple procedural interface (System.Stream_Attributes in files s-stratt.ad?) All you need to do to get an architecture independent view of streams is to replace this one unit (which has a very simple structure) with a different one using, e.g. XDR, for data representation. We intend to provide an XDR replacement for s-stratt.ad? in the near future with some kind of configuratoin pragma to select which one you want. For the described setup it would be even more elegant to utilize an implementation of the distributed system annex but as this builds on the stream facility as well you face the same problem as mentioned above. If you just look at the wording of this annex the big picture is a huge monolithic program that is now broken into pieces (partitions) That's not what I see reading the wording in the annex! There is no huge monolithic program. What is called here a partition is what would normally be called a program, and a distributed Ada "program" is in fact a collection of partitions. Note in particular that with GNAT's source based approach, you do not even need to compile these programs on the same machine or in the same "library", consistency can be maintained purely at the source level. You are reading the annex far too narrowly! and executed as a whole on a homogenous network of computers. That is definitely not what I understand by distributed computing. Well distribution may be homogenous or heterogenous. The Ada model is certainly aimed at homogenous distribution, but extends fine to the hetergenous case (we first demonstrated hetergenous distribution using this annex nearly two years ago at Tri-Ada, running on Sun's and SGI's) Although this could certainly be interpreted in a more open way, this is exactly what is currently implemented for GNAT. We do interprete it very openly, look more closely. Have a look at s-stratt. Even if you can't replace this yourself (which is really easy to do), other people including us will provide replacements soon.