comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Typical handling of packages through compilers
Date: Fri, 14 Aug 2009 17:06:07 -0500
Date: 2009-08-14T17:06:07-05:00	[thread overview]
Message-ID: <h64n6j$1en$1@munin.nbi.dk> (raw)
In-Reply-To: h47rgp$c9a$1@aioe.org

<tmoran@acm.org> wrote in message news:h47rgp$c9a$1@aioe.org...
>> It's the lack of a proper smart linking in the GNU linker. This
>> technique is in use since more than 20 years in other systems - e.g.:
>> Turbo Pascal and, later, Delphi. It seems also that Janus has it (or
>> at least an old version had it).
>  Janus has smart linking.  Janus Ada started life on DOS machines, where
> size mattered.  But Randy can tell you more.

There's not a lot more to say, it works rather as Adam had explained. Each 
top-level subprogram is included independently, depending on whether or not 
it is referenced. We do that recursively, so that subprograms that are 
referenced only by routines that are not referenced also are not included. 
We also have a mechanism for determining whether a routine present in a tag 
can actually be referenced from a dispatching call or not. These techniques 
can make a lot of difference in extreme cases: Claw example programs can be 
reduced by more than 500K in executable size.

                                   Randy.






  parent reply	other threads:[~2009-08-14 22:06 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-22 12:21 Typical handling of packages through compilers Hibou57 (Yannick Duchêne)
2009-07-22 12:57 ` Gautier write-only
2009-07-22 13:12   ` Hibou57 (Yannick Duchêne)
2009-07-22 20:06   ` tmoran
2009-07-22 21:27     ` Hibou57 (Yannick Duchêne)
2009-08-14 22:06     ` Randy Brukardt [this message]
2009-07-22 14:29 ` Adam Beneschan
2009-07-22 21:25   ` Hibou57 (Yannick Duchêne)
2009-07-22 21:55     ` Adam Beneschan
2009-07-22 23:15 ` Jeffrey Creem
replies disabled

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