comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Access type to member procedure of instance (Object Oriented programming in Ada)
Date: Wed, 21 Nov 2012 17:59:15 -0800 (PST)
Date: 2012-11-21T17:59:15-08:00	[thread overview]
Message-ID: <7f09e5c5-f118-4431-a3c2-4abd2145dc14@googlegroups.com> (raw)
In-Reply-To: <k8jjk6$29t$1@munin.nbi.dk>

On Wednesday, November 21, 2012 2:12:23 PM UTC-8, Randy Brukardt wrote:
> "Adam Beneschan" wrote in message 

> *IF* we made it legal, we'd simply change the convention to Ada. There is no 
> reason for the complication of a new kind of access type, because creating a 
> wrapper is simple. Moreover, both Ada 2005 and Ada 2012 require creating 
> wrappers in certain circumstances, so it's not like this is something a 
> compiler never has done before. 

Our compiler creates wrappers too.  I think that for a nested type extension, it has to create a wrapper for each inherited operation.  But that's only done once per operation per type.  I'm not thrilled with the idea of possibly generating a wrapper every time an 'Access occurs, which is what I think would be needed.  On the other hand, maybe in practice it wouldn't be a problem.  Maybe there wouldn't be that many occurrences of Obj.Operation'Access.  Anyway, it sounds like a space/time tradeoff.

It occurs to me that if you're right, we didn't need "access protected procedure/function" either, since that could also be implemented with wrappers, I think (there's a difference in that a dereference that calls a protected subprogram is a protected action, but I think the logic needed to make it a protected action could probably be stuck inside the wrapper.)

Anyway, it's all academic unless we actually decide it's worthwhile to make this change, and I'm not sure it is.  This was all pretty much musing about how it *might* work.

                              -- Adam



  reply	other threads:[~2012-11-22  1:59 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-19  9:59 Access type to member procedure of instance (Object Oriented programming in Ada) ake.ragnar.dahlgren
2012-11-19 11:13 ` Georg Bauhaus
2012-11-19 11:39 ` Brian Drummond
2012-11-20 11:43   ` Brian Drummond
2012-11-20 21:57     ` Randy Brukardt
2012-11-19 13:03 ` sbelmont700
2012-11-19 16:18 ` Adam Beneschan
2012-11-19 17:02   ` Peter C. Chapin
2012-11-19 18:23     ` Adam Beneschan
2012-11-19 20:57       ` Peter C. Chapin
2012-11-19 21:26       ` Dmitry A. Kazakov
2012-11-19 22:19         ` Adam Beneschan
2012-11-20 10:12           ` Dmitry A. Kazakov
2012-11-20 21:51             ` Randy Brukardt
2012-11-21  8:24               ` Dmitry A. Kazakov
2012-11-21 22:19                 ` Randy Brukardt
2012-11-20 10:59     ` Brian Drummond
2012-11-19 20:22 ` ake.ragnar.dahlgren
2012-11-20 11:16   ` Brian Drummond
2012-11-19 20:52 ` ake.ragnar.dahlgren
2012-11-19 21:56   ` Dmitry A. Kazakov
2012-11-22  9:49     ` ake.ragnar.dahlgren
2012-11-19 22:13   ` sbelmont700
2012-11-19 23:59 ` Randy Brukardt
2012-11-20  0:05   ` Randy Brukardt
2012-11-20  1:00     ` Adam Beneschan
2012-11-20 21:38       ` Randy Brukardt
2012-11-20 23:43         ` Adam Beneschan
2012-11-21 22:12           ` Randy Brukardt
2012-11-22  1:59             ` Adam Beneschan [this message]
2012-11-29  2:43               ` Randy Brukardt
2012-11-20  0:52   ` Adam Beneschan
2012-11-20 21:34     ` Randy Brukardt
2012-11-20 11:28   ` Brian Drummond
2012-11-20 14:27     ` Georg Bauhaus
2012-11-20 15:52     ` Adam Beneschan
2012-11-22  9:47 ` ake.ragnar.dahlgren
2012-11-22 10:25   ` Dmitry A. Kazakov
2012-12-02 20:42     ` ake.ragnar.dahlgren
2012-12-03 11:21       ` Dmitry A. Kazakov
2012-12-03 20:21         ` ake.ragnar.dahlgren
2012-12-03 22:15           ` Dmitry A. Kazakov
2012-12-25 21:51           ` Gustaf Thorslund
2012-12-26 18:11             ` ake.ragnar.dahlgren
2012-11-22 12:13   ` Brian Drummond
2012-12-03 16:17     ` ake.ragnar.dahlgren
2012-12-03 21:56       ` Brian Drummond
replies disabled

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