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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,d8de0100a4b5ff9d X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.scarlet.biz!news.scarlet.biz.POSTED!not-for-mail NNTP-Posting-Date: Thu, 16 Mar 2006 16:55:13 -0600 From: Ludovic Brenta Newsgroups: comp.lang.ada Subject: Re: Exception propagation References: <1142435766.866193.190130@i40g2000cwc.googlegroups.com> <87acbqdqof.fsf@ludovic-brenta.org> <1142547597.762400.142710@j33g2000cwa.googlegroups.com> Date: Thu, 16 Mar 2006 23:51:39 +0100 Message-ID: <87k6auatqc.fsf@ludovic-brenta.org> User-Agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux) Cancel-Lock: sha1:bcPXWE1ZsO+wpXM5MCbI0smfUN0= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii NNTP-Posting-Host: 83.134.238.204 X-Trace: sv3-W1i4jrTtwPhyE8M67DPLGNRtOrpkoEWBBH/MSQ6OrQdWuV9w8Iou2B1OoHmZpgW+CagArz6w68yl55k!IQdffoNbBEqEP53Ue081y9uK5YNNtat7IIlCbcRIWDKsL5IfsVJqfsZV4+4GtLtgTopT7Obxw/E= X-Complaints-To: abuse@scarlet.be X-DMCA-Complaints-To: abuse@scarlet.biz X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.32 Xref: g2news1.google.com comp.lang.ada:3389 Date: 2006-03-16T23:51:39+01:00 List-Id: "REH" writes: > Ludovic Brenta wrote: >> "REH" writes: >> > I found this "In a distributed program, the identity is unique across >> > an entire program, not just across a single partition. Exception >> > propagation works properly across RPC's. An exception can be propagated >> > from one partition to another, and then back to the first, where its >> > identity is known. " in the ARM. >> > >> > Does this mean that the id of an exception is identical in each >> > partition? So, if I am using a partitioned OS, can I send an >> > exception's id from one partition to another and reliably raise it? >> >> I am under the impression that you confuse the Ada notion of a >> "partition" and the OS notion; please correct me if I'm wrong. >> > Well, I'm not sure. What if I have a partitioned Ada program running > in a partitioned OS? What I wasn't sure of was whether I could take an > exception raised in one address space, and send it to another address > space and re-raise it. We are using Integrity. I was told I must use > connections (and not the RPC services in the distributed annex) because > they are faster. Whether that is true or not, I do not know. What I > am wondering (I have no hardware or software yet, so I cannot do any > prototyping), is will the two "pieces" of Ada, which are in separate > address spaces but built as one monolithic object, have the same > exception id mapping. Since I have to use connection objects, I have > to handle the exception propagation myself. I am trying to figure out > if I need to convert the exception ids to a common value both pieces of > Ada can agree on, like an enumeration, or if that is unnecessary > because the pieces already agree on the values of the ids. > > Is it even possible to have a partitioned Ada program without using > the distributed services annex? No, not in the sense of the Ada distributed systems annex. Whoever said you must use "connections" instead of "RPC" was thinking in terms of low-level OS services, and does not display understanding of the distributed systems annex. The DSA sits on top of the OS, and uses whatever services are available. The DSA then guarantees that all partitions agree on the same exception definitions, and provides a common protocol for exception propagation. If you can't or won't use the DSA, then you're pretty much on your own, and you have to solve the problems of common definition, propagation and handling. Instead of one partitioned program in the sense of the DSA, you will have several Ada programs talking to each other, much like you would do in lesser languages. Unfortunately, it seems you're in that situation, as Green Hills doesn't support the DSA, or even provide an implementation of it. Only AdaCore provides an implementation, called GLADE. With GLADE, you first compile and test your program as one monolithic executable; then you use "gnatdist" to split that program into one executable file per partition. GLADE does the rest. It's really very easy to do. > Does that make sense? Now it does. HTH -- Ludovic Brenta.