| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 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-01-22 | Make `Decodable` and `Decoder` infallible. | Nicholas Nethercote | -107/+112 | |
| `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 | -3/+3 | |
| Because `()` is called "unit" and it makes it match `Encoder::emit_unit`. | ||||
| 2021-11-22 | Avoid generating empty closures for fieldless enums | Mark Rousskov | -0/+14 | |
| 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 typos “a”→“an” | Frank Steffahn | -1/+1 | |
| 2021-08-18 | Remove box syntax from rustc_serialize | est31 | -1/+1 | |
| 2021-06-01 | Remove unused functions and arguments from rustc_serialize | bjorn3 | -108/+25 | |
| 2021-03-25 | Allow for reading raw bytes from rustc_serialize::Decoder without unsafe code. | Michael Woerister | -2/+1 | |
| 2021-03-19 | Move raw bytes handling to Encoder/Decoder. | Camille GILLOT | -0/+3 | |
| 2021-01-01 | rustc_serialize: specialize opaque decoding of some u8 sequences | Tyson Nottingham | -8/+3 | |
| 2021-01-01 | rustc_serialize: specialize opaque encoding of some u8 sequences | Tyson Nottingham | -1/+1 | |
| 2020-09-26 | Deduplicate and generalize some (de/)serializer impls | Oliver Scherer | -23/+11 | |
| 2020-08-30 | mv compiler to compiler/ | mark | -0/+782 | |
