comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Type safety on wikipedia
Date: Mon, 30 Jan 2006 20:13:52 -0600
Date: 2006-01-30T20:13:52-06:00	[thread overview]
Message-ID: <-YadnXqKU6ogW0PenZ2dnUVZ_tidnZ2d@megapath.net> (raw)
In-Reply-To: dreihb$712$1@pitr.home.jan

"Jan Andres" <jandres@gmx.net> wrote in message
news:dreihb$712$1@pitr.home.jan...
...
> Hmm, but aren't all the restrictions on the scope of access values
> actually there in order to guarantee type safety, as long as no unsafe
> constructs like 'Unchecked_Access are used? Or is
> Unchecked_Deallocation itself considered to be such an unsafe construct?
> If so, is there any "safe" alternative in Ada that we can use if we
> don't have GC?
>
> Of course you could simply avoid such constructs as quoted above but
> the downside is that the language will not actually enforce this.

The language (well, a compiler) can be made to enforce "No
Unchecked_Deallocation" using pragma Restrictions
(No_Unchecked_Deallocation); Similarly, you can prevent the use of
'Unchecked_Access with pragma Restrictions (No_Unchecked_Access); [Note that
these are program-wide, which might restrict the standard packages that you
can use.]

You can avoid using Unchecked_Deallocation if you can arrange for the access
type itself to go away, and then use a storage_pool for the storage. Or,
sometimes, you never need to free the data structure anyway (a compiler
symbol table comes to mind; it exists until the compile finishes). But both
of those are often impractical.

                                 Randy.





  parent reply	other threads:[~2006-01-31  2:13 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
2006-01-28  1:48         ` Jan Andres
2006-01-28  6:44           ` Martin Krischik
2006-01-31  2:13           ` Randy Brukardt [this message]
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