| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2022-02-22 | Delete Decoder::read_unit | Mark Rousskov | -11/+2 | |
| 2022-02-22 | Provide copy-free access to raw Decoder bytes | Mark Rousskov | -14/+7 | |
| 2022-02-22 | Provide raw &str access from Decoder | Mark Rousskov | -5/+4 | |
| 2022-02-20 | Delete Decoder::read_map | Mark Rousskov | -37/+26 | |
| 2022-02-20 | Delete Decoder::read_seq | Mark Rousskov | -54/+44 | |
| 2022-02-20 | Delete Decoder::read_enum_variant | Mark Rousskov | -14/+5 | |
| 2022-02-20 | Delete Decoder::read_map_elt_val | Mark Rousskov | -11/+3 | |
| 2022-02-20 | Delete Decoder::read_map_elt_key | Mark Rousskov | -11/+3 | |
| 2022-02-20 | Delete Decoder::read_option | Mark Rousskov | -13/+5 | |
| 2022-02-20 | Delete Decoder::read_seq_elt | Mark Rousskov | -19/+8 | |
| 2022-02-20 | Delete Decoder::read_tuple_arg | Mark Rousskov | -12/+1 | |
| 2022-02-20 | Delete Decoder::read_tuple | Mark Rousskov | -15/+3 | |
| 2022-02-20 | Use count! macro in tuple length computation | Mark Rousskov | -3/+2 | |
| 2022-02-20 | Delete Decoder::read_struct_field | Mark Rousskov | -8/+0 | |
| 2022-02-20 | Delete Decoder::read_struct | Mark Rousskov | -8/+0 | |
| 2022-02-20 | Delete read_enum_variant_arg | Mark Rousskov | -10/+2 | |
| 2022-02-20 | Delete read_enum_variant names | Mark Rousskov | -3/+3 | |
| 2022-02-20 | Delete Decoder::read_enum | Mark Rousskov | -21/+8 | |
| 2022-02-20 | Remove support for JSON deserialization to Rust | Mark Rousskov | -314/+7 | |
| This is no longer used by the compiler itself, and removing this support opens the door to massively simplifying the Decodable/Decoder API by dropping the self-describing deserialization support (necessary for JSON). | ||||
| 2022-02-19 | Adopt let else in more places | est31 | -3/+3 | |
| 2022-02-05 | Drop json::from_reader | Mark Rousskov | -22/+0 | |
| Performing UTF-8 decode outside the JSON module makes more sense in almost all cases. | ||||
| 2022-01-31 | Remove two unnecessary transmutes from opaque Encoder and Decoder | bjorn3 | -4/+3 | |
| 2022-01-22 | Address review comments. | Nicholas Nethercote | -3/+1 | |
| 2022-01-22 | Make `Decodable` and `Decoder` infallible. | Nicholas Nethercote | -307/+272 | |
| `Decoder` has two impls: - opaque: this impl is already partly infallible, i.e. in some places it currently panics on failure (e.g. if the input is too short, or on a bad `Result` discriminant), and in some places it returns an error (e.g. on a bad `Option` discriminant). The number of places where either happens is surprisingly small, just because the binary representation has very little redundancy and a lot of input reading can occur even on malformed data. - json: this impl is fully fallible, but it's only used (a) for the `.rlink` file production, and there's a `FIXME` comment suggesting it should change to a binary format, and (b) in a few tests in non-fundamental ways. Indeed #85993 is open to remove it entirely. And the top-level places in the compiler that call into decoding just abort on error anyway. So the fallibility is providing little value, and getting rid of it leads to some non-trivial performance improvements. Much of this commit is pretty boring and mechanical. Some notes about a few interesting parts: - The commit removes `Decoder::{Error,error}`. - `InternIteratorElement::intern_with`: the impl for `T` now has the same optimization for small counts that the impl for `Result<T, E>` has, because it's now much hotter. - Decodable impls for SmallVec, LinkedList, VecDeque now all use `collect`, which is nice; the one for `Vec` uses unsafe code, because that gave better perf on some benchmarks. | ||||
| 2022-01-22 | Rename `Decoder::read_nil` and `read_unit`. | Nicholas Nethercote | -5/+5 | |
| Because `()` is called "unit" and it makes it match `Encoder::emit_unit`. | ||||
| 2022-01-15 | Auto merge of #92604 - nnethercote:optimize-impl_read_unsigned_leb128, ↵ | bors | -17/+20 | |
| r=michaelwoerister Optimize `impl_read_unsigned_leb128` I see instruction count improvements of up to 3.5% locally with these changes, mostly on the smaller benchmarks. r? `@michaelwoerister` | ||||
| 2022-01-07 | Unpeel the first iteration of the loop in impl_read_unsigned_leb128. | Nicholas Nethercote | -2/+11 | |
| 2022-01-07 | Modify the buffer position directly when reading leb128 values. | Nicholas Nethercote | -15/+9 | |
| It's a small but clear performance win. | ||||
| 2021-12-28 | Do not use LEB128 for encoding u16 and i16 | Jakub Beránek | -8/+15 | |
| 2021-12-13 | Auto merge of #91626 - klensy:json-less-alloc, r=petrochenkov | bors | -3/+3 | |
| rustc_serialize: don't allocate `String`s as key for `BTreeMap`, when `str` is enough | ||||
| 2021-12-07 | don't allocate strings when str is enought for using as key | klensy | -3/+3 | |
| 2021-12-06 | avoid string validation in rustc_serialize, check a marker byte instead | The 8472 | -4/+17 | |
| since the serialization format isn't self-describing we need a way to detect when encoder and decoder don't match up. but that doesn't have to be utf8 validation for strings, which does cost a few % of performance. Instead we can use a marker byte at the end to be reasonably sure that we're dealing with a string and it wasn't overwritten in some way. | ||||
| 2021-11-22 | Avoid generating empty closures for fieldless enums | Mark Rousskov | -0/+28 | |
| For many enums, this avoids generating lots of tiny stubs that need to be codegen'd and then inlined and removed by LLVM. | ||||
| 2021-10-15 | Revert "Auto merge of #89709 - clemenswasser:apply_clippy_suggestions_2, ↵ | Matthias Krüger | -2/+2 | |
| r=petrochenkov" The PR had some unforseen perf regressions that are not as easy to find. Revert the PR for now. This reverts commit 6ae8912a3e7d2c4c775024f58a7ba4b1aedc4073, reversing changes made to 86d6d2b7389fe1b339402c1798edae8b695fc9ef. | ||||
| 2021-10-10 | Apply clippy suggestions | Clemens Wasser | -2/+2 | |
| 2021-09-10 | rustc: Remove local variable IDs from `Export`s | Vadim Petrochenkov | -0/+12 | |
| Local variables can never be exported. | ||||
| 2021-08-22 | Fix more “a”/“an” typos | Frank Steffahn | -2/+2 | |
| 2021-08-22 | Fix typos “a”→“an” | Frank Steffahn | -1/+1 | |
| 2021-08-18 | Remove box syntax from rustc_serialize | est31 | -2/+1 | |
| 2021-06-17 | Emit warnings for unused fields in custom targets. | Adam Bratschi-Kaye | -0/+9 | |
| 2021-06-07 | Auto merge of #85903 - bjorn3:rustc_serialize_cleanup, r=varkor | bors | -279/+73 | |
| Remove unused functions and arguments from rustc_serialize | ||||
| 2021-06-01 | Remove unused functions and arguments from rustc_serialize | bjorn3 | -279/+73 | |
| 2021-05-31 | Remove unused feature gates | bjorn3 | -3/+0 | |
| 2021-03-26 | Auto merge of #83465 - michaelwoerister:safe-read_raw_bytes, r=cjgillot | bors | -35/+18 | |
| Allow for reading raw bytes from rustc_serialize::Decoder without unsafe code The current `read_raw_bytes` method requires using `MaybeUninit` and `unsafe`. I don't think this is necessary. Let's see if a safe interface has any performance drawbacks. This is a followup to #83273 and will make it easier to rebase #82183. r? `@cjgillot` | ||||
| 2021-03-25 | Allow for reading raw bytes from rustc_serialize::Decoder without unsafe code. | Michael Woerister | -35/+18 | |
| 2021-03-24 | Revert "Revert stabilizing integer::BITS." | Mara Bos | -1/+0 | |
| 2021-03-19 | Move raw bytes handling to Encoder/Decoder. | Camille GILLOT | -44/+70 | |
| 2021-03-18 | Simplify IntEncodedWithFixedSize. | Camille GILLOT | -13/+7 | |
| 2021-03-18 | Move IntEncodedWithFixedSize to rustc_serialize. | Camille GILLOT | -0/+48 | |
| 2021-02-20 | Update the bootstrap compiler | Joshua Nelson | -1/+0 | |
| Note this does not change `core::derive` since it was merged after the beta bump. | ||||
