diff options
| author | Kang Seonghoon <public+git@mearie.org> | 2015-03-03 00:34:50 +0900 |
|---|---|---|
| committer | Kang Seonghoon <public+git@mearie.org> | 2015-03-03 11:55:37 +0900 |
| commit | fe73d382eeabaed0c37425388ab15ad690e5906f (patch) | |
| tree | 132367064f05aaa3e312ae1b0824c48e58120bf2 /src/libstd/sys/unix/stack_overflow.rs | |
| parent | 36a09a162dd04cf1ba092a837978cecea88bc529 (diff) | |
| download | rust-fe73d382eeabaed0c37425388ab15ad690e5906f.tar.gz rust-fe73d382eeabaed0c37425388ab15ad690e5906f.zip | |
metadata: Compact integer encoding.
Previously every auto-serialized tags are strongly typed. However this is not strictly required, and instead it can be exploited to provide the optimal encoding for smaller integers. This commit repurposes `EsI8`/`EsU8` through `EsI64`/`EsU64` tags to represent *any* integers with given ranges: It is now possible to encode `42u64` as two bytes `EsU8 0x2a`, for example. There are some limitations: * It does not apply to non-auto-serialized tags for obvious reasons. Fortunately, we have already eliminated the biggest source of such tag in favor of auto-serialized tags: `tag_table_id`. * Bigger tags cannot be used to represent smaller types. * Signed tags and unsigned tags do not mix.
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions
