comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: ada compiler?
Date: Fri, 16 Nov 2007 19:50:03 -0600
Date: 2007-11-16T19:50:03-06:00	[thread overview]
Message-ID: <fhlh5h$2a1$1@jacob-sparre.dk> (raw)
In-Reply-To: 473b58af$0$27815$39db0f71@news.song.fi

"Niklas Holsti" <niklas.holsti@tidorum.invalid> wrote in message
news:473b58af$0$27815$39db0f71@news.song.fi...
...
> My wishlist for stack checking support in Ada compilers:
>
> Storage_Error should be raised a bit before the stack is fully
> exhausted. The amount of "reserve" stack-space left at that point
> should be configurable by an option or an environment variable to
> an (application-specific) value that lets the exception be raised
> and handled.
>
> While the exception is being propagated and handled (that is, while
> it is possible to say "raise;") the application should be able to
> use the reserve stack capacity (with possibly a Segmentation
> Violation if the reserve capacity is exhausted).
>
> Normal checking rules (respecting the reserve capacity) should
> return into force when the exception has been handled (when it is
> no longer possible to reraise the exception).
>
> But I have no idea how hard that would be to implement...

That's pretty close to how Janus/Ada implements, actually, but there is one
issue: given that pretty much anything can be called during the handler, and
further exceptions raised and handled, it is pretty hard to both allow the
reserve capacity to be used and then not allow it to be used. (Moreover,
that probably would cause the exception to be immediately raised instantly
when the handler completed - because the finalization handlers would
overflow - probably not what was intended.)

We obviously can't make stack checks more expensive (for obvious reasons;
one of the purposes of the reserve is to allow room for interrupt handlers
and OS calls, neither of which respect Ada task stacks),.

The amount of the reserve can be configured in the runtime system (with just
a simple recompile), but we don't have an "option" for configuring it - it
seems a rare enough need.

Of course, other runtime models (especially those using hardware checking)
would be different.

                            Randy.





  reply	other threads:[~2007-11-17  1:50 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-09 22:25 ada compiler? Bill Cunningham
2007-11-09 22:39 ` anon
2007-11-09 22:59   ` Bill Cunningham
2007-11-09 23:28     ` anon
2007-11-09 23:50 ` Jeffrey R. Carter
2007-11-10  0:32   ` anon
2007-11-10  4:15     ` Jeffrey Creem
2007-11-10  5:08     ` tmoran
2007-11-10  6:12       ` anon
2007-11-10  8:35         ` tmoran
2007-11-10 20:20           ` anon
2007-11-10 22:15             ` Jeffrey Creem
2007-11-11  1:01               ` anon
2007-11-11  1:14                 ` (see below)
2007-11-11  2:21                 ` Georg Bauhaus
2007-11-11  4:08                   ` Jeffrey R. Carter
2007-11-13 13:24                     ` Ludovic Brenta
2007-11-14  7:00                       ` Jacob Sparre Andersen
2007-11-14  9:15                         ` Georg Bauhaus
2007-11-14 10:26                           ` Ludovic Brenta
2007-11-14 12:25                             ` Georg Bauhaus
2007-11-14 15:09                               ` Ludovic Brenta
2007-11-14 16:03                                 ` Georg Bauhaus
2007-11-14 16:36                                   ` Ludovic Brenta
2007-11-14 17:39                                     ` Georg Bauhaus
2007-11-14 20:40                                       ` Ludovic Brenta
2007-11-15  9:59                                         ` Georg Bauhaus
2007-11-14 17:52                                     ` Georg Bauhaus
2007-11-16  1:07                                     ` Samuel Tardieu
2007-11-16  1:58                                       ` tmoran
2007-11-16  9:41                                       ` Stack checking in GNAT (was: ada compiler?) Ludovic Brenta
2007-11-16 10:56                                         ` Stack checking in GNAT Samuel Tardieu
2007-11-16 13:04                                           ` Ludovic Brenta
2007-11-17  7:24                                             ` anon
2007-11-29  0:32                                         ` Robert A Duff
2007-11-17  1:37                                       ` ada compiler? Randy Brukardt
2007-11-17  1:18                                     ` Randy Brukardt
2007-11-29  0:41                                     ` Robert A Duff
2007-11-14 21:31                                 ` Niklas Holsti
2007-11-17  1:50                                   ` Randy Brukardt [this message]
2007-11-14 18:33                         ` anon
2007-11-12  5:13                   ` anon
2007-11-11 14:15                 ` Jeffrey Creem
2007-11-13  7:11                 ` Martin Krischik
2007-11-13  8:47                   ` anon
2007-11-13  9:34                     ` to gnat make or not to gnat make (Was: ada compiler?) Martin Krischik
2007-11-13 22:46                       ` anon
2007-11-13 23:14                         ` to gnat make or not to gnat make Simon Wright
2007-11-14  9:21                         ` to gnat make or not to gnat make (Was: ada compiler?) Georg Bauhaus
2007-11-13 22:41                     ` ada compiler? Simon Wright
2007-11-17  2:07                     ` Randy Brukardt
2007-11-17  7:51                       ` anon
2007-11-17  9:00                         ` Pascal Obry
2007-11-17 12:24                         ` Ludovic Brenta
2007-11-19 21:35                           ` Randy Brukardt
2007-11-10 15:03         ` (see below)
2007-11-12 16:38       ` Adam Beneschan
2007-11-13  3:16         ` John W. Kennedy
2007-11-13 16:46           ` Adam Beneschan
2007-11-10  3:07 ` Georg Bauhaus
2007-11-13  0:20 ` adaworks
2007-11-13 22:27   ` Simon Wright
2007-11-14 17:32   ` Britt Snodgrass
replies disabled

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