[m-dev.] Mixing grades and package size

Peter Hawkins peter at hawkins.emu.id.au
Wed Sep 14 15:12:35 AEST 2005


Hi...

Under what circumstances is it legitimate to link mercury code compiled
in different grades together?

For example, is it legitimate to link code compiled in asm_fast.gc and
asm_fast.gc.debug grades together? How does this differ from compiling
some code with --trace deep in asm_fast.gc together with other code with
--trace none?

Do the libmer_browser, libmer_trace and libmer_mdbcomp libraries
actually do anything meaningful in a non-debugging grade? Could they be
shared between debugging and non-debugging grades?

I've split the debian packaging up into per-grade packages in order to
shrink the minimum download size. The packages don't contain shared
libraries since library versioning isn't supported yet. The packages are
still quite large:
-rw-r--r--  1 hawkinsp mercury 1.6M Sep 14 14:16 libmercury-hlc-gc-dev_0.11.0.rotd.20050914-1_amd64.deb
-rw-r--r--  1 hawkinsp mercury 2.8M Sep 14 14:17 libmercury-hlc-gc-prof-tr-dev_0.11.0.rotd.20050914-1_amd64.deb
-rw-r--r--  1 hawkinsp mercury 1.8M Sep 14 14:16 libmercury-hlc-gc-tr-dev_0.11.0.rotd.20050914-1_amd64.deb
-rw-r--r--  1 hawkinsp mercury 1.6M Sep 14 14:16 libmercury-hlc-par-gc-dev_0.11.0.rotd.20050914-1_amd64.deb
-rw-r--r--  1 hawkinsp mercury 4.4M Sep 14 14:18 libmercury-llds-gc-profdeep-tr-dev_0.11.0.rotd.20050914-1_amd64.deb
-rw-r--r--  1 hawkinsp mercury 6.9M Sep 14 14:17 libmercury-llds-gc-tr-decldebug-dev_0.11.0.rotd.20050914-1_amd64.deb
-rw-r--r--  1 hawkinsp mercury 1.1M Sep 14 14:18 mercury-doc_0.11.0.rotd.20050914-1_all.deb
-rw-r--r--  1 hawkinsp mercury 8.3M Sep 14 14:16 mercury_0.11.0.rotd.20050914-1_amd64.deb

The largest objects in the distribution are things like:
-rw-r--r-- root/root  43009600 2005-09-14 14:16:15
./usr/lib/mercury/lib/asm_fast.gc.tr.decldebug/x86_64-pc-linux-gnu/libmer_std.a
-rw-r--r-- root/root  21943970 2005-09-14 14:16:15
./usr/lib/mercury/lib/asm_fast.gc.profdeep.tr/x86_64-pc-linux-gnu/libmer_std.a
-rw-r--r-- root/root   5145416 2005-09-14 14:16:15
./usr/lib/mercury/lib/asm_fast.gc.profdeep.tr/x86_64-pc-linux-gnu/libmer_browser.a

-rwxr-xr-x root/root  10078536 2005-09-14 14:16:12
./usr/lib/mercury/bin/x86_64-pc-linux-gnu/mercury_compile
-rwxr-xr-x root/root   2149064 2005-09-14 14:16:12
./usr/lib/mercury/bin/x86_64-pc-linux-gnu/mslice
-rwxr-xr-x root/root   2149160 2005-09-14 14:16:12
./usr/lib/mercury/bin/x86_64-pc-linux-gnu/mdice
-rwxr-xr-x root/root   2118600 2005-09-14 14:16:12
./usr/lib/mercury/bin/x86_64-pc-linux-gnu/mtc_union
-rwxr-xr-x root/root   2156456 2005-09-14 14:16:12
./usr/lib/mercury/bin/x86_64-pc-linux-gnu/mercury_profile
-rwxr-xr-x root/root   2443880 2005-09-14 14:16:12
./usr/lib/mercury/bin/x86_64-pc-linux-gnu/mdprof_cgi

Using dynamic linking would easily save around 10Mb from the installed size of
the compiler. Perhaps there are also ways of shrinking the layout
structures in the debugging grades?

=)
Peter
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list