comp.lang.ada
 help / color / mirror / Atom feed
From: Freejack <freejack@nowhere.net>
Subject: Re: Objects and the Stack?
Date: Fri, 17 Dec 2004 19:52:24 GMT
Date: 2004-12-17T19:52:24+00:00	[thread overview]
Message-ID: <pan.2004.12.17.15.01.13.949959@nowhere.net> (raw)
In-Reply-To: 32fv82F3l9al7U1@individual.net

On Fri, 17 Dec 2004 11:46:11 +0000, Nick Roberts wrote:

> I suppose so, but I think I should tell you now that what you trying 
> (above) cannot work. The assumption in Ada is that the space reserved 
> within a stack frame for an object cannot be resized (even though the space 
> used /within/ the space reserved for an object can). So the compiler must 
> be able to allocate the maximum size of an object on the stack. Since what 
> you are attempting could cause Stack to grow to any size without limit, the 
> compiler cannot know what maximum to allocate. It won't work, and so you 
> must use the heap (or more correctly, a 'storage pool').
> 
> Ada has no equivalent of alloca() in C. It might be interesting to 
> experiment with a compiler extension to provide this facility. Certain 
> algorithms might benefit from it.
> 
>     declare
>        Name: String := "";
>        pragma Extensible_Object(Name);
>     begin
>        ...
>        Name := Name & ':'; -- changes its size
>        ...
> 
> It's an idea.

I think the florist bindings have an Interface to the brk() and sbrk()
system calls, which is how it's usually done in C/Asm.
Perhaps by declaring the Objects to be Controlled, and then putting in
calls to brk() one might achieve the same effect.

Freejack



  reply	other threads:[~2004-12-17 19:52 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-16 22:27 Objects and the Stack? Freejack
2004-12-16 23:13 ` Nick Roberts
2004-12-20 14:50   ` Marc A. Criley
2004-12-20 16:22     ` Marius Amado Alves
2004-12-20 18:31       ` Dmitry A. Kazakov
2004-12-17  0:28 ` Jeffrey Carter
2004-12-17  8:45   ` Freejack
2004-12-17 11:11     ` Martin Dowie
2004-12-17 11:46     ` Nick Roberts
2004-12-17 19:52       ` Freejack [this message]
2004-12-18  4:02         ` Nick Roberts
2004-12-27  4:34         ` Dave Thompson
2004-12-18 19:41       ` Warren W. Gay VE3WWG
2004-12-18 20:50         ` Freejack
2004-12-18 21:15           ` Dmitry A. Kazakov
2004-12-27  4:34         ` Dave Thompson
2004-12-18  0:12     ` Jeffrey Carter
2004-12-18  0:43       ` Jeffrey Carter
replies disabled

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