diff options
| author | bors <bors@rust-lang.org> | 2015-05-09 14:56:56 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-05-09 14:56:56 +0000 |
| commit | 67ba6dcf68860d8a20891faad88a33b35ed58df5 (patch) | |
| tree | 1793c023e25949a282b8a95ba1ef090070c97a19 /src/liballoc | |
| parent | 497942332f919b1a952310a730349ca1b9524968 (diff) | |
| parent | 1aecd17463bb16d03462cf31edb920b9f47ddf2c (diff) | |
| download | rust-67ba6dcf68860d8a20891faad88a33b35ed58df5.tar.gz rust-67ba6dcf68860d8a20891faad88a33b35ed58df5.zip | |
Auto merge of #24612 - lifthrasiir:flt2dec, r=pnkfelix
This is a direct port of my prior work on the float formatting. The detailed description is available [here](https://github.com/lifthrasiir/rust-strconv#flt2dec). In brief, * This adds a new hidden module `core::num::flt2dec` for testing from `libcoretest`. Why is it in `core::num` instead of `core::fmt`? Because I envision that the table used by `flt2dec` is directly applicable to `dec2flt` (cf. #24557) as well, which exceeds the realm of "formatting". * This contains both Dragon4 algorithm (exact, complete but slow) and Grisu3 algorithm (exact, fast but incomplete). * The code is accompanied with a large amount of self-tests and some exhaustive tests. In particular, `libcoretest` gets a new dependency on `librand`. For the external interface it relies on the existing test suite. * It is known that, in the best case, the entire formatting code has about 30 KBs of binary overhead (judged from strconv experiments). Not too bad but there might be a potential room for improvements. This is rather large code. I did my best to comment and annotate the code, but you have been warned. For the maximal availability the original code was licensed in CC0, but I've also dual-licensed it in MIT/Apache as well so there should be no licensing concern. This is [breaking-change] as it changes the float output slightly (and it also affects the casing of `inf` and `nan`). I hope this is not a big deal though :) Fixes #7030, #18038 and #24556. Also related to #6220 and #20870. ## Known Issues - [x] I've yet to finish `make check-stage1`. It does pass main test suites including `run-pass` but there might be some unknown edges on the doctests. - [ ] Figure out how this PR affects rustc. - [ ] Determine which internal routine is mapped to the formatting specifier. Depending on the decision, some internal routine can be safely removed (for instance, currently `to_shortest_str` is unused).
Diffstat (limited to 'src/liballoc')
0 files changed, 0 insertions, 0 deletions
