comp.lang.ada
 help / color / mirror / Atom feed
From: Bill Findlay <yaldnif.w@blueyonder.co.uk>
Subject: Re: Have the Itanium critics all been proven wrong?
Date: Wed, 22 Aug 2012 19:18:29 +0100
Date: 2012-08-22T19:18:29+01:00	[thread overview]
Message-ID: <CC5AE105.1BEBA%yaldnif.w@blueyonder.co.uk> (raw)
In-Reply-To: 793f28d5-8d61-48e7-adc8-266356cecd26@cf4g2000vbb.googlegroups.com

On 22/08/2012 16:59, in article
793f28d5-8d61-48e7-adc8-266356cecd26@cf4g2000vbb.googlegroups.com, "Michael
S" <already5chosen@yahoo.com> wrote:

> On Aug 22, 6:06�pm, Brian Drummond <br...@shapes.demon.co.uk> wrote:
>> On Wed, 22 Aug 2012 07:00:31 -0700, Michael S wrote:
>>> On Aug 22, 3:39�pm, Brian Drummond <br...@shapes.demon.co.uk> wrote:
>>>> On Wed, 22 Aug 2012 03:32:00 -0700, Michael S wrote:
>> 
>> [... discussion of private types exported to module A from B]
>> 
>>>> This puts B in charge of the object lifetimes; if A wants to access a
>>>> stale object, expect an exception.
>> 
>>> Exception, if I am lucky.
>>> If I am less lucky, the physical place of old auto object is now
>>> occupied by new auto object of the same or compatible type and the call
>>> to accessor caused silent corruption.
>> 
>> If a module has exported a pointer to an "auto object" then the
>> accessibility checks have been circumvented by unchecked_access or
>> unchecked_conversion. In which case ... yes, caveat programmer!
>> 
> 
> My knowledge of Ada is rather rusty :(
> Is it correct to say that applying 'access attribute to auto objects
> is a syntax error and that the only possible way of getting access to
> such objects is by applying  'unchecked_access attribute?

No, 'Access is perfectly OK for an auto object, but the object must be
explicitly declared as of type "aliased T", and about the only thing you can
do with the access value is pass it into an "access all T" pointer (or
explicitly unsafely coerce it).   If the pointer type is declared in the
same scope as the object, or in an enclosed scope, no pointer value of that
type can survive leaving the object's scope (modulo explicitly unsafely
coercing to a type of wider scope).

It is not impossible to hang yourself with Ada - there is quite sufficient
rope - but it requires very deliberate and unusual preparation, and won't
happen by mere accident or ordinary negligence.

> Thinking about it, it makes sense.
> 99% of cases of passing pointers to auto object as parameters in C are
> not because programmer really wants to pass pointer, but because of
> absence of 'out' and 'in out' modes and due to inefficiency of passing
> of big objects in C language equivalent of 'in' mode.

Exactly so.

> Also nearly 100% of uses of  pointers to auto object in the local
> context are due to [by now quite often false] programmer's believe
> that he can optimize better than optimizing compiler.

And again, yes.  But sometimes the programmer is right about that. 8-)

-- 
Bill Findlay
with blueyonder.co.uk;
use  surname & forename;





  parent reply	other threads:[~2012-08-22 18:18 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <5021874F.1747D0BF@sonic.net>
     [not found] ` <1e1tf9-0kp2.ln1@ntp6.tmsw.no>
     [not found]   ` <k0gn5r$l9h$1@needham.csi.cam.ac.uk>
     [not found]     ` <GPRWr.31944$Bw1.31300@newsfe05.iad>
     [not found]       ` <k0gq97$li8$1@needham.csi.cam.ac.uk>
     [not found]         ` <k0h6ef$jke$1@speranza.aioe.org>
     [not found]           ` <46f19bfc-930e-4f06-b5a6-c60f39cfda0c@p14g2000yqk.googlegroups.com>
     [not found]             ` <k0r609$4ij$1@speranza.aioe.org>
     [not found]               ` <077b12f6-1196-4b5c-bbdb-04291b1ae616@q22g2000vbx.googlegroups.com>
     [not found]                 ` <k0rree$lkn$1@speranza.aioe.org>
     [not found]                   ` <CC5730C5.1BC2E%yaldnif.w@blueyonder.co.uk>
     [not found]                     ` <k0t67b$b8r$1@speranza.aioe.org>
     [not found]                       ` <CC585119.1BCCC%yaldnif.w@blueyonder.co.uk>
     [not found]                         ` <k0uenp$fbg$1@speranza.aioe.org>
     [not found]                           ` <k0vo9u$fer$1@dont-email.me>
     [not found]                             ` <589825d2-d998-456a-9c37-c8ae13e1e7bc@e29g2000vbm.googlegroups.com>
2012-08-21 20:48                               ` Have the Itanium critics all been proven wrong? Niklas Holsti
2012-08-21 22:32                                 ` Robert A Duff
     [not found]                                 ` <keb838pn40uf3pq1536e9b3dptgd57h3se@invalid.netcom.com>
2012-08-22  2:32                                   ` Bill Findlay
2012-08-22  2:42                                     ` Adam Beneschan
2012-08-22  4:08                                       ` Bill Findlay
2012-08-22  4:40                                         ` Adam Beneschan
2012-08-22  9:29                                 ` Michael S
2012-08-22 10:14                                   ` Dmitry A. Kazakov
2012-08-22 10:28                                   ` Ludovic Brenta
2012-08-22 12:48                                     ` Brian Drummond
2012-08-22 15:42                                       ` Ludovic Brenta
2012-08-22 10:54                                   ` Niklas Holsti
2012-08-22 12:43                                     ` Michael S
2012-08-22 13:20                                       ` Michael S
2012-08-22 22:30                                         ` Randy Brukardt
     [not found]                               ` <k10tdr$nm6$1@dont-email.me>
     [not found]                                 ` <bb4e5231-142b-437c-8c2a-bbd6daf34df8@g2g2000vba.googlegroups.com>
2012-08-22 12:39                                   ` Brian Drummond
2012-08-22 14:00                                     ` Michael S
2012-08-22 15:06                                       ` Brian Drummond
2012-08-22 15:21                                         ` Bill Findlay
2012-08-22 15:59                                         ` Michael S
2012-08-22 16:01                                           ` Michael S
2012-08-22 16:58                                           ` Georg Bauhaus
2012-08-22 18:18                                           ` Bill Findlay [this message]
2012-08-22 15:05                                     ` Simon Wright
     [not found] <k0jkb3$hm1$1@dont-email.me>
     [not found] ` <632eec054470aafb59e98744e950ea8b@dizum.com>
     [not found]   ` <k0m5c3$t6t$1@dont-email.me>
     [not found]     ` <CC545B6F.1BA11%yaldnif.w@blueyonder.co.uk>
2012-08-22 22:35       ` Bill Findlay
replies disabled

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