comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Sharing generic bodies across instantiations.
Date: Fri, 30 Jul 2010 11:09:09 +0200
Date: 2010-07-30T11:09:09+02:00	[thread overview]
Message-ID: <94v29hel87y$.8jvqfyw964yt.dlg@40tude.net> (raw)
In-Reply-To: d29ffdef-0fa3-4308-9651-0c4514d5d04b@g35g2000yqa.googlegroups.com

On Thu, 29 Jul 2010 13:27:05 -0700 (PDT), Maciej Sobczak wrote:

> On 29 Lip, 16:40, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
> 
>>>> It would be technically meaningless, because the back-end tools down to the
>>>> linker and loader were unsuitable for this.
>>
>>> First: C++ standard places no constraints on how the implementation is
>>> organized at the system level.
>>
>> What are you trying to say by this?
> 
> That it does not matter what was the suitability of the back-end
> tools, as there is no obligation (as far as the standard is concerned)
> to use the existing tools. If you are not obliged to use existing
> tools, you are not constrained by their (lack of) suitability.

This is obviously wrong. It is like to say that you are not constrained to
fly to the Moon even if there is no rocket available.

>>> Second: so, I understand, "the back-end tools down to the linker and
>>> loader" were more suitable to do it in Ada, right?
>>
>> You mean shared Ada generic bodies? Yes they require much less late binding
>> than C++ templates would,
> 
> Can you elaborate on this, please?

Compiled generic bodies, at least in Ada 83, can be parametrized using
linker expressions. I didn't looked into Ada 95 tagged types derived within
the body from a formal generic parameter, you better as Randy for details.

>>>>> Interestingly, macros cannot use this strategy by their definition.
>>
>>>> They perfectly can.
>>
>>> No. 2.1 (C++ standard) defines the phases of translation - macro
>>> expansion is performed before syntactic and semantic analysis of
>>> tokens.
>>
>> 1. My example of shared macros was MACRO-11.
> 
> I thought we were talking about C++. Or Ada.

We were about macros. You claimed that implementation of a macro cannot use
something that templates can. This is a sweeping claim, which is obviously
wrong.

(Especially because C++ templates are macros (:-))

>> 2. The standard does not put any requirements on how the compiler actually
>> works.
> 
> Bingo. So why do you put claims that are based on the suitability of
> some tools?

Because any implementation must use these tools. BTW, the CPU is also such
a tool. (To preempt silly claims: the strength of the word "must" may vary
from tool to tool.)

> The above point basically contradicts most of what you have said.

How so? What I said was:

1) C++ tells something about templates
2) C++ is silent about some other things about templates
3) 1 makes something allowed by 2 difficult

Where is a contradiction?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2010-07-30  9:09 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-27  0:51 Sharing generic bodies across instantiations Peter C. Chapin
2010-07-27  3:01 ` Gene
2010-07-27  6:55 ` AdaMagica
2010-07-27 11:29   ` Ludovic Brenta
2010-07-27 14:10     ` Tero Koskinen
2010-07-27 10:51 ` Martin
2010-07-27 20:06 ` anon
2010-07-27 22:23   ` Peter C. Chapin
2010-07-28  7:59     ` Maciej Sobczak
2010-07-28  9:28       ` Dmitry A. Kazakov
2010-07-28 12:55         ` Maciej Sobczak
2010-07-28 13:16           ` Dmitry A. Kazakov
2010-07-28 19:48             ` Maciej Sobczak
2010-07-29  8:03               ` Dmitry A. Kazakov
2010-07-29 14:02                 ` Maciej Sobczak
2010-07-29 14:40                   ` Dmitry A. Kazakov
2010-07-29 20:27                     ` Maciej Sobczak
2010-07-30  9:09                       ` Dmitry A. Kazakov [this message]
2010-07-30 12:31                         ` Maciej Sobczak
2010-07-30 14:59                           ` Dmitry A. Kazakov
2010-08-03  3:02                           ` Randy Brukardt
2010-08-03 14:37                             ` Robert A Duff
2010-08-03  2:47                         ` Randy Brukardt
2010-07-28 20:01             ` Keith Thompson
2010-07-29  7:46               ` Dmitry A. Kazakov
2010-07-28 11:27       ` Peter C. Chapin
2010-07-28 13:10         ` Maciej Sobczak
2010-07-28 16:32           ` Peter C. Chapin
2010-07-28 19:30             ` Robert A Duff
2010-07-28 20:03             ` Maciej Sobczak
2010-07-28 11:47     ` anon
2010-08-03  2:38     ` Randy Brukardt
2010-08-03 14:31       ` Robert A Duff
2010-07-28  0:55   ` Keith Thompson
2010-07-28  8:42     ` Markus Schoepflin
2010-07-28 11:16     ` anon
replies disabled

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