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,8acd4291c317f897 X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,8acd4291c317f897 X-Google-Attributes: gid109fba,public From: "Robert I. Eachus" Subject: Re: Safety of the Booch Ada 95 Components Date: 1999/12/13 Message-ID: <38558788.33C493B@mitre.org>#1/1 X-Deja-AN: 560306899 Content-Transfer-Encoding: 7bit References: <1e2lds4.7trgj21rgj9i0N%herwin@gmu.edu> <38512921_3@news1.prserv.net> <3851c7b9_4@news1.prserv.net> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@news.mitre.org X-Trace: top.mitre.org 945128940 24669 129.83.41.77 (13 Dec 1999 23:49:00 GMT) Organization: The MITRE Corporation Mime-Version: 1.0 NNTP-Posting-Date: 13 Dec 1999 23:49:00 GMT Newsgroups: comp.lang.ada,comp.lang.c++ Date: 1999-12-13T23:49:00+00:00 List-Id: Hyman Rosen wrote: > Why is an assignment operator that raises an exception broken? It isn't. But in Ada, an assignment that raises an exception does so before actually "copying the bits." So that objects that were consistant are not broken except by an explicit abort from some other task while outside an abort-deferred region. However, one explicit abort-deferred operation is: "an assignment operation to an object with a controlled part." RM9.8(11) There other such operations included so that a user of an object of a controlled type can expect that the value is never corrupted. So any user of an Ada package which did corrupt objects in this manner would be consider it to be broken. -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...