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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,11a62e323672426b X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-05-13 06:33:49 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!bloom-beacon.mit.edu!cambridge1-snf1.gtei.net!news.gtei.net!bos-service1.ext.raytheon.com!bos-service2.ext.raytheon.com.POSTED!not-for-mail Message-ID: <3EC0F429.7650700@raytheon.com> From: Mark Johnson X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: GNAT bending signal handlers References: <6a6390b8.0305120129.24683c2b@posting.google.com> <3EBFDAB9.441F858D@raytheon.com> <6a6390b8.0305130305.13dfc423@posting.google.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Tue, 13 May 2003 08:33:29 -0500 NNTP-Posting-Host: 192.27.48.39 X-Complaints-To: news@ext.ray.com X-Trace: bos-service2.ext.raytheon.com 1052832829 192.27.48.39 (Tue, 13 May 2003 09:33:49 EDT) NNTP-Posting-Date: Tue, 13 May 2003 09:33:49 EDT Organization: Raytheon Company Xref: archiver1.google.com comp.lang.ada:37273 Date: 2003-05-13T08:33:29-05:00 List-Id: Oliver Kellogg wrote: > > Mark Johnson wrote in message news:<3EBFDAB9.441F858D@raytheon.com>... > > > > I suggest a look at the "super secret" GNAT Reference Manual for this > > answer. Look for Pragma Interrupt_State (or simply search for "signal") > > to see why various signals are required to implement Ada exceptions. > > Hm, I can't find anything on a pragma Interrupt_State > (looked in gnat-3.15p-unx-docs as well as > http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/gnat_rm.texi?rev=1.12&content-type=text/x-cvsweb-markup > , also searched for "signal".) > Alas, I was mistaken. I checked the documentation more fully and that pragma (Interrupt_State) was introduced in GNAT 3.16 (and also in 5.00). The same comment I made before about upgrading applies. However, since there is not yet a "public" version of 3.16 - your choices are: - work w/ a bleeding edge version of gcc that supports Ada - get a support contract w/ ACT (to get 3.16a or 5.00a) - wait for 3.16 to come out - OR use the following instead... The solution for 3.15 and before is to use pragma Unreserve_All_Interrupts; which is a sledgehammer to make "all such interrupts unreserved". The reference manual also points you to a-intnam.ads for the list of interrupts handled in the specific version you are using. I highly recommend a *complete* read of the user's guide and reference manual before using GNAT in any serious way. There is a *lot* of this kind of information in it. The alternative of course is to check the run time source in the adainclude directory. In some cases - the best documentation is buried in comments in the source code. --Mark