<hannes>
ehirdoy_home: AFAIK the numbers from asplos paper used the byte code interpreter, whereas mirage nowadays always uses native code compilation...
<ehirdoy_home>
@hannes, you mean, with bytecode, actual size may be binary size + runtime size ~= native code size?
<ehirdoy_home>
ocamlclean is used to remove unused functions in addition to '-lto' removing unused modules, but ocamlclean seems to be only for byte code :( I need the similar for native code, removing unused functions........
<hannes>
well, or finding out which opam packages are in the dependency chain and are big and can be safely removed/replaced ;) what is your desired binary size?
<hannes>
or re-activating the bytecode output of mirageos to produce tiny binaries
<ehirdoy_home>
the smaller the better:) People are trying to shrink linux kernel ~1MB+ and also there are many more smaller RTOSes. Probably 500kB MirageOS(inc net stack) may be appealing as in asplos paper originally, I guess. If I take MirageOS in bytecode for smallness, some perf would be sacrificed....
jnavila has quit [Ping timeout: 246 seconds]
<Drup>
the "dead code elim" sizes in the asplos paper are with ocamlclean, you won't get that in native. hello wolrd in native + -lto on unix is ~500Ko. A complete website with TLS stack+assets is 1.5Mo
<Drup>
(add around 1Mo for Xen images)
mort___ has joined #mirage
<ehirdoy_home>
I tried today with 4.06.1+lto switch, and hello.hvt(native) is 967KB. This is still bigger by 467KB, compared with your info....:( I really want to see 500KB hello native at first with the latest 4.06.1+lto.
<Drup>
hmm, the measurements I have at hands were done with 4.05, and I don't know which Mirage version (probably 2.X or 3.0). The base things might have grown a bit