[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