From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Multiple procedures in the same adb file?
Date: Mon, 12 Jan 2015 09:57:58 -0500
Date: 2015-01-12T09:57:58-05:00 [thread overview]
Message-ID: <wcck30s2gi1.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: m902gd$sp3$1@dont-email.me
"J-P. Rosen" <rosen@adalog.fr> writes:
> Le 12/01/2015 01:53, Robert A Duff a écrit :
>> This happened to me: Existing code:
>>
>> function Some_Root_Package.Some_Function(...) return String;
>>
>> Now I happen to know that it always returns String(1..20).
>> And returning known-length strings is more efficient,
>> and this one is a bottleneck, so it's worth changing to
>> something like:
>>
>> subtype String_20 is String(1..20);
>> function Some_Function(...) return String_20;
>>
>> But that doesn't work without adding a new package, which breaks
>> compatibility. And this was a widely-used library, so I couldn't do
>> that. And String_20 really doesn't belong in Some_Root_Package,
>> nor anywhere else than the package that Some_Function is (directly) in
>> (which didn't exist!).
>
> Put the function in a package, and declare Some_Function as:
> function Some_Function (...) renames New_Package.Some_Function;
>
> (For compatibility, new programs would use directly the function in the
> package).
I started to reply, "Good idea", but then I remembered it doesn't work.
A library unit can only rename another library unit. If it did work,
I'd still prefer to use packages from the start.
I see AARM-10.1.1(14.a) explains why we have this restriction, in part
"because they wouldn't be particularly useful". Probably written by
somebody who doesn't like library subprograms. ;-)
- Bob
next prev parent reply other threads:[~2015-01-12 14:57 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-11 18:37 Multiple procedures in the same adb file? John Smith
2015-01-11 19:05 ` John Smith
2015-01-11 19:51 ` Robert A Duff
2015-01-11 20:38 ` John Smith
2015-01-11 21:02 ` Robert A Duff
2015-01-11 21:51 ` John Smith
2015-01-12 0:53 ` Robert A Duff
2015-01-12 0:55 ` Robert A Duff
2015-01-13 0:11 ` Randy Brukardt
2015-01-11 21:38 ` Niklas Holsti
2015-01-12 0:53 ` Robert A Duff
2015-01-12 9:01 ` J-P. Rosen
2015-01-12 14:57 ` Robert A Duff [this message]
2015-01-13 0:09 ` Randy Brukardt
2015-01-12 0:55 ` Robert A Duff
2015-01-11 20:04 ` Jeffrey Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox