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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,deafd6d94d731fd3 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-11-18 17:39:14 PST Newsgroups: comp.lang.ada Path: nntp.gmd.de!xlink.net!howland.reston.ans.net!math.ohio-state.edu!uwm.edu!lll-winken.llnl.gov!noc.near.net!inmet!spock!stt From: stt@spock.camb.inmet.com (Tucker Taft) Subject: Re: "Beaujolais Effect" -- what is it? Message-ID: Sender: news@inmet.camb.inmet.com Organization: Intermetrics, Inc. References: Date: Fri, 18 Nov 1994 21:37:30 GMT Date: 1994-11-18T21:37:30+00:00 List-Id: In article , John Volan wrote: >In the AARM9X (5.0), I've noticed occasional references (e.g. >8.6(22.a)) to something called the "Beaujolais Effect." I take it >that this effect is detrimental, and language designers should try to >avoid it. However, I haven't been able to find a definition for it >anywhere, and it isn't referenced in the AARM9X index. (I suppose >that's reasonable, since it's only mentioned in annotations, not the >main text of he RM). Can anyone supply a definition for this, and/or >give some pointers to relevant literature about this (especially >ftp-able stuff)? Thanks in advance. The term "Beaujolais Effect" comes from a prize (a bottle of Beaujolais) offered by Jean Ichbiah during the original Ada design process to anyone who could find a situation where adding or removing a single "use" clause could change a program from one legal interpretation to a different legal interpretation. (Or equivalently, adding or removing a single declaration from a "use"d package.) At least one bottle was awarded, and if the offer was still open, a few more might have been awarded during the Ada 9X process. However, thanks to some very nice analysis by the Ada 9X Language Precision Team (based at Odyssey Research Associates) we were able to identify the remaining cases of this effect in Ada 83, and remove them as part of the 9X process. The existing cases in Ada 83 had to do with implicit conversion of expressions of a universal type to a non-universal type. The rules in Ada 9X are subtly different, making any case that used to result in a Beaujolais effect in Ada 83, illegal (due to ambiguity) in Ada 9X. The Beaujolais effect is considered "harmful" because it is expected that during maintenance, declarations may be added or removed from packages without being able to do an exhaustive search for all places where the package is "use"d. If there were situations in the language which resulted in Beaujolais effects, then certain kinds of changes in "use"d packages might have mysterious effects in unexpected places. > John Volan S. Tucker Taft stt@inmet.com Ada 9X Mapping/Revision Team Intermetrics, Inc. Cambridge, MA 02138