comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: new revision ada
Date: Wed, 23 Jun 2004 14:47:58 -0500
Date: 2004-06-23T14:47:58-05:00	[thread overview]
Message-ID: <gMCdnQvdG_LLQ0TdRVn-ug@megapath.net> (raw)
In-Reply-To: sa4acyulwtc.fsf@snoopy.apana.org.au

"Brian May" <bam@snoopy.apana.org.au> wrote in message
news:sa4acyulwtc.fsf@snoopy.apana.org.au...
...
> Similarly, the booch component model no doubt will require allocation
> of additional memory, too.
>
> But what if the exception that is being processed is of a direct
> result of a out of memory error? (obviously I am assuming this is on
> some system, eg. embedded systems, that detects out of memory errors
> before it is too late). Even if it isn't the out of memory exception
> itself, a program may need to throw a new exception in response to an
> out of memory error. No doubt multiple threads may get out of memory
> errors simultaneously too, as they probably are sharing the same
> memory pool.

Given that you're talking about passing an unknown amount of memory along
with the exception (since it depends on which exception you raise, you can
hardly pre-allocate it), I would think that raising an exception in your
model would have to allocate memory. The reason for the 200 character limit
on the exception message string is simply so that memory doesn't need to be
allocated when raising an exception.

(Of course, an implementation could allocate a fixed amount of space for
exception handling, and fall back to allocating memory only if it doesn't
fit -- but that doesn't eliminate the original problem.)

In any case, the ARG looked at ways to extend the exception model, and
ultimately decided that none of them looked very appealing. They were
complex or incompatible, and ultimately the issue was dropped because other
areas were more important (limited with, interfaces, Ravenscar, limited
constructors, etc.)

Recently, we decided to lift some of the restrictions on tagged type
derivation. That would allow exceptions to be a kind of tagged type (with
the Ada 95 restrictions, you wouldn't have been able to declare exceptions
in nested scopes -- which of course would have been too incompatible to
consider). Thus, a clean solution based on type extension now would be
possible. However, we're nearing the end of the process, and we have been
strictly enforcing the rules about not reopening closed AIs. Moreover, WG9
just approved the scope of the Amendment, so adding in anything at this late
date would require extordinary action.

One of the reasons that we stopped working on it was that putting an id of
some sort in the exception message string is sufficient in virtually all
cases. It certainly isn't real clean, but as Tom demonstrated, you can wrap
the entire thing in a generic package and not have to see any of the dirty
details. While having mutually dependent types in multiple packages, or
multiple interface inheritance, or a constructor for a limited object, is
simply impossible in Ada 95.

BTW, look at ada-auth.org for the current state of the project, especially
in the "Grab Bag" section. I haven't updated that yet for the results of the
Palma meeting, but that will be done soon.

                       Randy Brukardt
                       ARG Editor
                       Editor, ISO/IEC 8652:AMD 1







  reply	other threads:[~2004-06-23 19:47 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-31 13:32 Typing in Ada Empit
2004-05-31 14:04 ` Poul-Erik Andreasen
2004-05-31 17:01 ` Jeffrey Carter
2004-05-31 20:03   ` Peter C. Chapin
2004-05-31 22:56     ` tmoran
2004-06-01  1:09       ` Peter C. Chapin
2004-06-01  4:40         ` tmoran
2004-06-01 11:26           ` Peter C. Chapin
2004-06-10  3:01             ` Dave Thompson
2004-06-10  3:00         ` Dave Thompson
2004-05-31 23:22     ` Nick Roberts
2004-06-01  1:04       ` Peter C. Chapin
2004-06-01  2:29         ` Nick Roberts
2004-06-02  4:39         ` Robert I. Eachus
2004-06-02 15:17           ` Hyman Rosen
2004-06-01  2:36       ` Hyman Rosen
2004-06-01  4:27         ` Larry Kilgallen
2004-06-01  4:05           ` Hyman Rosen
     [not found]         ` <d4vnb0tepd4togdrvdrbqpok1ne6n9i2vp@4ax.com>
2004-06-01 14:36           ` Wes Groleau
2004-06-01 20:24         ` Niklas Holsti
2004-06-02  4:43           ` Wes Groleau
2004-06-02  5:28             ` Robert I. Eachus
2004-06-02  8:19               ` tmoran
2004-06-02 14:47               ` Wes Groleau
2004-06-02 11:26             ` Marin David Condic
2004-06-02 14:54               ` gratuitous restrictions (was:Typing in Ada) Wes Groleau
2004-06-02  5:04           ` Typing in Ada Robert I. Eachus
2004-06-01  2:14     ` David C. Hoos
2004-06-02  1:30     ` Jeffrey Carter
2004-06-02 10:53       ` Peter C. Chapin
2004-06-02 11:38         ` Marin David Condic
2004-06-17  2:50           ` Dave Thompson
2004-06-17  4:24             ` James Rogers
2004-06-17 12:28               ` Hyman Rosen
2004-06-17 23:42                 ` James Rogers
2004-06-20 11:27                   ` Nick Roberts
2004-06-20 23:29                     ` new revision ada Brian May
2004-06-21  2:16                       ` tmoran
2004-06-21  2:34                         ` James Rogers
2004-06-22  2:16                           ` Roland Illig
2004-06-22  3:41                             ` James Rogers
2004-06-22  6:53                               ` Martin Krischik
2004-06-21 23:33                         ` Brian May
2004-06-22 20:26                           ` Simon Wright
2004-06-23  0:50                             ` Larry Elmore
2004-06-22 22:06                           ` tmoran
2004-06-21  5:31                       ` Wes Groleau
2004-06-21 12:27                       ` new revision ada (limited with, excpetion handling) Nick Roberts
2004-06-21 13:04                         ` Martin Dowie
2004-06-22 10:38                       ` new revision ada Georg Bauhaus
2004-06-22 12:45                         ` James Rogers
2004-06-22 15:17                           ` Martin Krischik
2004-06-22 16:09                             ` new revision ada (exception handling) Nick Roberts
2004-06-23  7:55                               ` Pascal Obry
2004-06-23  8:40                                 ` Martin Krischik
2004-06-23 19:33                                   ` Randy Brukardt
2004-06-24  6:57                                     ` Martin Krischik
2004-06-24 21:13                                       ` Randy Brukardt
2004-06-25  8:05                                         ` Dmitry A. Kazakov
2004-06-25 17:28                                           ` Randy Brukardt
2004-06-23  4:31                             ` new revision ada Brian May
2004-06-23 19:47                               ` Randy Brukardt [this message]
2004-06-22 16:37                           ` Georg Bauhaus
2004-06-26 14:57                           ` Robert I. Eachus
2004-06-01  1:02 ` Typing in Ada Alexander E. Kopilovich
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox