comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: Type safety on wikipedia
Date: Fri, 27 Jan 2006 19:54:33 +0100
Date: 2006-01-27T19:54:33+01:00	[thread overview]
Message-ID: <15595105.IY1iVEeMMt@linux1.krischik.com> (raw)
In-Reply-To: 1138322309.525464.253320@z14g2000cwz.googlegroups.com

jimmaureenrogers@worldnet.att.net wrote:

> 
> Florian Weimer wrote:
>> Now, suppose that X is a pool-specific access value for some type T,
>> and Free is a corresponding instance of Ada.Unchecked_Deallocation.
>> Suppose that
>>
>>
>>    Free (X);
>>
>> has just been exected.  Suppose the next thing to be evaluated is
>>
>>    declare
>>       Y : T := X.all;
>>    begin
>>       ...
> 
> 
> Let's look at an actual program doing an equivalent action:

> with Ada.Text_Io;
> 
> procedure Access_Test is
>    type Int_Access is access Integer;
>    P : Int_Access;
> begin
>    P := null;
>    Ada.Text_Io.Put_Line(Integer'Image(P.All));
> end Access_Test;

Make that

with Ada.Text_Io;

procedure Access_Test is
    type Int_Access is access Integer;
    procedure Deallocate is new Unchecked_Deallocation ....

   P : Int_Access := new Integer;
   Q : Int_Access := P;
begin
    Deallocate (P);
    Ada.Text_Io.Put_Line(Integer'Image(Q.All));
 end Access_Test;

That is what the garbage collection chapter of the article is all about. 
For a type save language behavior of this code snippet must be well
defined. But in Ada it is not. 

Martin

-- 
mailto://krischik@users.sourceforge.net
Ada programming at: http://ada.krischik.com



  reply	other threads:[~2006-01-27 18:54 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-26  7:28 Type safety on wikipedia Martin Krischik
2006-01-26 11:58 ` Alex R. Mosteo
2006-01-26 17:10   ` Martin Krischik
2006-01-26 20:24   ` Simon Wright
2006-01-26 20:43     ` Simon Wright
2006-01-27  6:58       ` Martin Krischik
2006-01-26 23:43   ` Bobby D. Bryant
2006-01-27 11:14     ` Alex R. Mosteo
2006-01-27 11:57       ` Martin Krischik
2006-01-27 15:30         ` Larry Kilgallen
2006-01-27 19:04           ` Martin Krischik
2006-01-27 22:06             ` Larry Kilgallen
2006-01-28  7:04               ` Martin Krischik
2006-01-29 21:48               ` Florian Weimer
2006-01-27 12:43       ` Georg Bauhaus
2006-01-26 13:49 ` Rod Chapman
2006-01-26 17:05   ` Martin Krischik
2006-01-26 18:14   ` Martin Krischik
2006-01-26 13:53 ` jimmaureenrogers
2006-01-26 15:18   ` Alex R. Mosteo
2006-01-26 16:49     ` Martin Krischik
2006-01-26 18:19       ` Alex R. Mosteo
2006-01-26 20:38         ` Simon Wright
2006-01-27 11:13           ` Alex R. Mosteo
2006-01-27 19:38             ` Simon Wright
2006-01-27 23:24               ` Randy Brukardt
2006-01-28  6:53               ` Martin Krischik
2006-01-27 18:58           ` Martin Krischik
2006-01-27 19:50             ` Simon Wright
2006-01-28  6:52               ` Martin Krischik
2006-01-26 19:22     ` Dmitry A. Kazakov
2006-01-26 19:07   ` Florian Weimer
2006-01-27  0:38     ` jimmaureenrogers
2006-01-27 18:54       ` Martin Krischik [this message]
2006-01-28  1:48         ` Jan Andres
2006-01-28  6:44           ` Martin Krischik
2006-01-31  2:13           ` Randy Brukardt
2006-02-06  5:02       ` Dave Thompson
2006-02-06  8:29         ` Larry Kilgallen
2006-01-27 11:34     ` Alex R. Mosteo
2006-01-27 12:18       ` Martin Krischik
2006-01-27 15:27       ` Florian Weimer
replies disabled

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