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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1bce3f54cf1cba1b X-Google-Attributes: gid103376,public From: Geert Bosch Subject: Re: GNAT Executables: How low can you go? Date: 1996/04/17 Message-ID: #1/1 X-Deja-AN: 147995450 references: <4kmq7a$egm@fozzie.sun3.iaf.nl> <4l0o3s$hgt@utrhcs.cs.utwente.nl> <31742475.1CFBAE39@escmail.orl.mmc.com> content-type: TEXT/PLAIN; charset=US-ASCII organization: La Calandre Infortunee mime-version: 1.0 newsgroups: comp.lang.ada Date: 1996-04-17T00:00:00+00:00 List-Id: On Tue, 16 Apr 1996, Theodore E. Dennison wrote: > Of course you realize that unless you have other applications running > simultaniously on the system using those DLL's, you havent gained > anything. You've just split your executable into several files. All > the bytes are still there. I didn't expect to have to defend why small executables are an advantage, but I'll try to list some reasons: * Disk space: typical combined savings of using dynamic linking with the GNAT RTL, using LINK386 instead of ld and using compression are are in the 100-350 kB per executable. I've got 95 GNAT executables, which is good for a saving of 10 - 30 MB. (The 250 kB of the DLL doesn't really matter.) So, you don't save a few kB, but you'll save MB's. (Even with just 10 executables you might save a few MB. * I don't want my utility to be 10x as big as one written in C (Most C programmers use the emx DLL's) If I wrote a bunch of Unix-like commands for OS/2 using Ada and they would be 100-200kB each, nobody would use my Unix utilities. On the other hand, if they would be 10-20kB each, but you'd need the 250 kB GNAT RTL everybody would think that would be reasonable, esp. when you explain that DLL is the emxlibc equivalent for Ada. So, not being able to create tiny executables hinders the acceptance of Ada as a language for small programs. Most people who don't know Ada, associate Ada with an old, large bloated programming language which can only be used to write large and boring applications which manifest themselves as bloated executables. When my little utilities are 100-200 kB each, I don't have the slighest chance of getting the language (or the applications produced by it) accepted: I'd only reconfirm the perception of Ada as large and bloated. I know these are not purely technical reasons, but people don't just at technical issues. When an Ada program is 10 times as large as a C program, people will expect the Ada program to be 10 times as slow. * In practise, on multitasking systems there will be many applications using the same DLL's. If only the GNAT system with all utilities would have been dynamically linked, this would save a lot of disk space and memory space when you're using emxload. * It is much easier to upgrade/improve the RTL without having to rebuild the world. Of course measures need to be taken to ensure that the interface doesn't change. For the RTL this shouldn't be much of a problem. Actually this last point was the reason for me to try to dynamically linke the RTL. That way I could easily switch between the standard implementation and my (still experimental) RTL using garbage collection. Regards, Geert E-Mail: geert@sun3.iaf.nl *** As far as we know, there have not been *** Phone: +31-53-4303054 ** any undetected failures in our software. **