about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorSimonas Kazlauskas <github@kazlauskas.me>2015-12-31 17:28:57 +0200
committerSimonas Kazlauskas <git@kazlauskas.me>2015-12-31 18:52:20 +0200
commit23d24ff6678c601774a24500700f7380a2c34ad4 (patch)
tree8565a2fadc5719a7679a224816b92a66eb14f6cd /src/rustllvm/RustWrapper.cpp
parentad3371aedbf3c2addb105d7997a27311cbcf42e2 (diff)
parentfa2a7411e403ec31b426c339c9950af8a1037995 (diff)
downloadrust-23d24ff6678c601774a24500700f7380a2c34ad4.tar.gz
rust-23d24ff6678c601774a24500700f7380a2c34ad4.zip
Rollup merge of #30565 - michaelwoerister:opaque_encoder, r=brson
This PR changes the `emit_opaque` and `read_opaque` methods in the RBML library to use a space-efficient binary encoder that does not emit any tags and uses the LEB128 variable-length integer format for all numbers it emits.

The space savings are nice, albeit a bit underwhelming, especially for dynamic libraries where metadata is already compressed.

| RLIBs        |  NEW   |   OLD     |
|--------------|--------|-----------|
|libstd        | 8.8 MB |  10.5 MB  |
|libcore       |15.6 MB |   19.7 MB |
|libcollections| 3.7 MB |    4.8 MB |
|librustc      |34.0 MB |   37.8 MB |
|libsyntax     |28.3 MB |   32.1 MB |

| SOs           |     NEW   |    OLD |
|---------------|-----------|--------|
| libstd        |  4.8 MB   | 5.1 MB |
| librustc      |  8.6 MB   | 9.2 MB |
| libsyntax     |  7.8 MB   | 8.4 MB |

At least this should make up for the size increase caused recently by also storing MIR in crate metadata.

Can this be a breaking change for anyone?
cc @rust-lang/compiler
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions