From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!igor!rutabaga!jls From: jls@rutabaga.Rational.COM (Jim Showalter) Newsgroups: comp.lang.ada Subject: Re: Reducing size of Ada's EXE files Message-ID: Date: 16 Apr 91 03:24:21 GMT References: <437@wrdis01.af.mil> <1991Apr12.235101.7245@jpl-devvax.jpl.nasa.gov> Sender: news@Rational.COM List-Id: %What most of us complain about is the amount of code that gets linked into an %executable which will never be executed. On DEC Ada, for instance, whenever %you used a subprogram from a package, you got the whole package linked in. %So if the subprogram was 3 KBytes & the package was 3 MBytes, you got a %1000 times as much code in your executable. % %Agreed, it takes a smart linker to know just what part of a package you need. %For instance, any variables global to a package which are used by the desired %subprogram will need to be linked in. Any initialization code you include at %the end of the package, & all the subprograms & global variables they use, %must be linked. And so on. But eventually such smart linkers must become %available if Ada is to compete successfully with other languages. Our cross-compilers do link-time dead code elimination. Only the code that is actually reachable is ever loaded into the executables. Similarly, our Ada runtimes are selectively loadable, so, for example, if you don't use tasking then no tasking stuff is loaded. -- * The opinions expressed herein are my own, except in the realm of software * * engineering, in which case I borrowed them from incredibly smart people. * * * * Rational: cutting-edge software engineering technology and services. *