comp.lang.ada
 help / color / mirror / Atom feed
From: "J-P. Rosen" <rosen@adalog.fr>
Subject: Re: Multiple procedures in the same adb file?
Date: Mon, 12 Jan 2015 10:01:28 +0100
Date: 2015-01-12T10:01:28+01:00	[thread overview]
Message-ID: <m902gd$sp3$1@dont-email.me> (raw)
In-Reply-To: <wcc1tn0x1j6.fsf@shell01.TheWorld.com>

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).

-- 
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr


  reply	other threads:[~2015-01-12  9:01 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 [this message]
2015-01-12 14:57         ` Robert A Duff
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