1. 22 4月, 2020 2 次提交
    • B
      Auto merge of #71402 - ehuss:update-cargo, r=ehuss · 70f4f320
      bors 提交于
      Update cargo, rls
      
      ## cargo
      
      17 commits in ebda5065ee8a1e46801380abcbac21a25bc7e755..8751eb3010d4cdb5329b5a6bd2b6d765c95b0dca
      2020-04-16 14:28:43 +0000 to 2020-04-21 18:04:35 +0000
      - Uplift windows gnu DLL import libraries. (rust-lang/cargo#8141)
      - Add windows-gnu CI and fix tests (rust-lang/cargo#8139)
      - Several updates to token/index handling. (rust-lang/cargo#7973)
      - Add `resolver` opt-in for new feature resolver. (rust-lang/cargo#8129)
      - Improve error message when running `cargo install .` (rust-lang/cargo#8137)
      - fix mem replace unused (rust-lang/cargo#8138)
      - Change `-Cembed-bitcode=no` use to `-Cbitcode-in-rlib=no`. (rust-lang/cargo#8134)
      - Refactor BuildContext (rust-lang/cargo#8068)
      - Rename allows_underscores to allows_dashes. (rust-lang/cargo#8135)
      - Fixed a needless borrow. (rust-lang/cargo#8130)
      - Add link to changelog in the Cargo book. (rust-lang/cargo#8126)
      - Fix target for doc test cross compilation (rust-lang/cargo#8094)
      - Add note about .cargo/config support. (rust-lang/cargo#8125)
      - Fix pdb uplift when executable has dashes. (rust-lang/cargo#8123)
      - Hint upgrading for future edition keys (rust-lang/cargo#8122)
      - Use some fs shorthand functions. (rust-lang/cargo#8124)
      - Update documentation to mention "config.toml" instead of "config" (rust-lang/cargo#8121)
      
      ## rls
      
      1 commits in 2659cbf14bfb0929a16d7ce9b6858d0bb286ede7..7de2a1f299f8744ffe109139f9f1fdf28bfec909
      2020-04-14 22:07:24 +0200 to 2020-04-19 22:41:55 +0000
      - Update cargo (rust-lang-nursery/rls#1663)
      70f4f320
    • E
      Update cargo, rls · da2eb65d
      Eric Huss 提交于
      da2eb65d
  2. 21 4月, 2020 16 次提交
    • B
      Auto merge of #71170 - spastorino:dyn-fnonce-alignment, r=nikomatsakis · 45d050cd
      bors 提交于
      Make Box<dyn FnOnce> respect self alignment
      
      Closes #68304
      
      r? @EddyB @nikomatsakis
      45d050cd
    • B
      Auto merge of #71267 - pnkfelix:issue-71248-dont-need-exports-all-green, r=nagisa · 25f070d1
      bors 提交于
      attempt to recover perf by removing `exports_all_green`
      
      attempt to recover perf by removing `exports_all_green` flag.
      
      cc #71248
      
      (My hypothesis is that my use of this flag was an overly conservative generalization of PR #67020.)
      25f070d1
    • B
      Auto merge of #71367 - Dylan-DPC:rollup-ysj4olr, r=Dylan-DPC · 073744f5
      bors 提交于
      Rollup of 4 pull requests
      
      Successful merges:
      
       - #69362 (Stabilize most common subset of alloc_layout_extras)
       - #71174 (Check that main/start is not async)
       - #71285 (MIR: use HirId instead of NodeId to avoid cycles while inlining)
       - #71346 (Do not build tools if user do not want them)
      
      Failed merges:
      
      r? @ghost
      073744f5
    • D
      Rollup merge of #71346 - mati865:rustbuild-tools, r=Mark-Simulacrum · 9a0e7029
      Dylan DPC 提交于
      Do not build tools if user do not want them
      
      Fixes https://github.com/rust-lang/rust/issues/71307
      9a0e7029
    • D
      Rollup merge of #71285 - ljedrz:mir_inline_span_for_optimized_mir, r=ecstatic-morse · 42b533d7
      Dylan DPC 提交于
      MIR: use HirId instead of NodeId to avoid cycles while inlining
      
      I wanted to see if I could limit the number of uses of `NodeId` when `HirId` is available and I saw that some of the MIR `Inliner` code could use `Span` instead of `NodeId`, not unlike in https://github.com/rust-lang/rust/pull/71197.
      
      ~If I'm understanding the reason for not calling `optimized_mir` in incremental builds here correctly, this change could also allow us to do so.~
      
      This change could affect performance, so if this approach makes sense, a perf run is probably a good idea.
      42b533d7
    • D
      Rollup merge of #71174 - Nokel81:fix-async-main-error, r=petrochenkov · e3a514c4
      Dylan DPC 提交于
      Check that main/start is not async
      
      * Add new error code E0752
      * Add span to hir::IsAsync::Yes
      * Emit an error if main or the start function is marked as async
      * Add two regression tests
      
      This PR fixes #68523.
      e3a514c4
    • D
      Rollup merge of #69362 - CAD97:alloc_layout_extras, r=Amanieu · 69a528ed
      Dylan DPC 提交于
      Stabilize most common subset of alloc_layout_extras
      
      Tracking issue: https://github.com/rust-lang/rust/issues/55724
      
      Specifically, this stabilizes:
      
      ```rust
      pub fn Layout::align_to(&self, align: usize) -> Result<Layout, LayoutErr>;
      pub fn Layout::pad_to_align(&self) -> Layout;
      pub fn Layout::extend(&self, next: Layout) -> Result<(Layout, usize), LayoutErr>;
      pub fn Layout::array<T>(n: usize) -> Result<Layout, LayoutErr>;
      ```
      
      Methods that are tracked by #55724 but are not stabilized here:
      
      ```rust
      pub fn Layout::padding_needed_for(&self, align: usize) -> usize;
      pub fn Layout::repeat(&self, n: usize) -> Result<(Layout, usize), LayoutErr>;
      pub fn Layout::repeat_packed(&self, n: usize) -> Result<Layout, LayoutErr>;
      pub fn Layout::extend_packed(&self, next: Layout) -> Result<Layout, LayoutErr>;
      ```
      
      Combined, these stabilized functions allow code to construct and manipulate `repr(C)` layouts while letting the standard library handle correctness in the face of edge cases. For example use cases, consider the usage in [hashbrown](https://github.com/Amanieu/hashbrown/blob/2f2af1d/src/raw/mod.rs#L143), [crossbeam-skiplist](https://github.com/crossbeam-rs/crossbeam-skiplist/blob/master/src/base.rs#L99), [pointer-utils/slice-dst](https://github.com/CAD97/pointer-utils/blob/92aeefeed9399f28d1b1654b63f8dcbe1242d8d4/crates/slice-dst/src/layout_polyfill.rs), and of course the standard library itself.
      
      Providing a higher-level API such as `Layout::repr_c<const N: usize>(fields: [Layout; N]) -> Result<(Layout, [usize; N]), LayoutErr>` is blocked on const generics, which are a ways off. Providing an API that doesn't provide offsets would be quite suboptimal, as the reason for calculating the layout like this rather than `Layout::new` is to get the field offsets.
      
      The primary issue with the current API is having to call `.pad_to_align()` to match the layout of a `repr(C)` struct. However, I think this is not just a (failing? limitation?) of the API, but rather intrinsic complexity. While all Rust-defined types have size==stride, and probably will for the foreseeable future, there is no inherent reason why this is a limitation of all allocations. As such, the `Layout` manipulation APIs shouldn't impose this limitation, and instead the higher level api of `repr_c` (or just plain old using `Layout::new`) can make keeping it simple.
      
      cc @matklad r? @rust-lang/libs
      69a528ed
    • B
      Auto merge of #71356 - Dylan-DPC:rollup-liockhk, r=Dylan-DPC · 20fc02f8
      bors 提交于
      Rollup of 5 pull requests
      
      Successful merges:
      
       - #71250 (Replace big JS dict with JSON parsing)
       - #71270 (Fix `has_no_input_arg` check and rename it to `has_only_self_parameter`)
       - #71284 (fix -Zast-json to output correct JSON form)
       - #71328 (Stabilize PathBuf capacity methods)
       - #71334 (Update pattern docs.)
      
      Failed merges:
      
      r? @ghost
      20fc02f8
    • M
      Do not build tools if user do not want them · 9296d3ba
      Mateusz Mikuła 提交于
      9296d3ba
    • C
      Improve Layout::extend docs · 98f0a824
      CAD97 提交于
      98f0a824
    • C
      Update src/libcore/alloc/layout.rs · 9c3adaf8
      Christopher Durham 提交于
      Co-Authored-By: NAmanieu d'Antras <amanieu@gmail.com>
      9c3adaf8
    • D
      Rollup merge of #71334 - ehuss:pattern-docs, r=kennytm · b921587c
      Dylan DPC 提交于
      Update pattern docs.
      
      A few changes to help clarify string pattern usage:
      
      * Add some examples and stability information in the `pattern` module.
      * Fixes the links at https://doc.rust-lang.org/std/str/pattern/ because intra-doc-links don't work with re-exported modules (#65983 I think?).
      * Consistently use the same phrasing for `str` methods taking a pattern.
          * Also mention that array of `char` is also accepted.
      
      When `Pattern` is stabilized, the phrasing in the `str` methods can be updated to be more general to reflect the exact behavior. I'm reluctant to do this now because the stability story for `Pattern` is uncertain. It may perhaps look something like:
      
      > The pattern can be any type that implements the [`Pattern`] trait. Notable examples are `&str`, [`char`], arrays of [`char`], or functions or closures that determines if a character matches. Additional libraries might provide more complex patterns like regular expressions.
      
      This is complicated because methods like `trim_matches` have bounds, which for example don't support `str`, so those methods may need more elaboration.
      b921587c
    • D
    • D
      Rollup merge of #71284 - JOE1994:serialize_id, r=petrochenkov · 314b78c5
      Dylan DPC 提交于
      fix -Zast-json to output correct JSON form
      
      fixes #71086 (Reverts some of the changes made in #70215)
      
      JSON output (from an empty library) after fix has something for **"id"** field
      ```shell
      lonelyjoe@lonelyjoe-desktop:~/workspace/empty_lib/src$ rustc lib.rs -Zast-json
      ```
      ```json
      {
         "module":{
            "inner":{
               "lo":0,
               "hi":94
            },
            "items":[
               {
                  "attrs":[
                     {
                        "kind":{
                           "variant":"Normal",
                           "fields":[
                              {
                                 "path":{
                                    "span":{
                                       "lo":0,
                                       "hi":0
                                    },
                                    "segments":[
                                       {
                                          "ident":{
                                             "name":"prelude_import",
                                             "span":{
                                                "lo":0,
                                                "hi":0
                                             }
                                          },
                                          "id":3,
                                          "args":null
                                       }
                                    ]
                                 },
                                 "args":"Empty"
                              }
                           ]
                        },
                        "id":null,
                        "style":"Outer",
                        "span":{
                           "lo":0,
                           "hi":0
                        }
                     }
                  ],
                  "id":4,
                  "span":{
                     "lo":0,
                     "hi":0
                  },
                  "vis":{
                     "node":"Inherited",
                     "span":{
                        "lo":0,
                        "hi":0
                     }
                  },
                  "ident":{
                     "name":"",
                     "span":{
                        "lo":0,
                        "hi":0
                     }
                  },
                  "kind":{
                     "variant":"Use",
                     "fields":[
                        {
                           "prefix":{
                              "span":{
                                 "lo":0,
                                 "hi":0
                              },
                              "segments":[
                                 {
                                    "ident":{
                                       "name":"{{root}}",
                                       "span":{
                                          "lo":0,
                                          "hi":0
                                       }
                                    },
                                    "id":5,
                                    "args":null
                                 },
                                 {
                                    "ident":{
                                       "name":"std",
                                       "span":{
                                          "lo":0,
                                          "hi":0
                                       }
                                    },
                                    "id":6,
                                    "args":null
                                 },
                                 {
                                    "ident":{
                                       "name":"prelude",
                                       "span":{
                                          "lo":0,
                                          "hi":0
                                       }
                                    },
                                    "id":7,
                                    "args":null
                                 },
                                 {
                                    "ident":{
                                       "name":"v1",
                                       "span":{
                                          "lo":0,
                                          "hi":0
                                       }
                                    },
                                    "id":8,
                                    "args":null
                                 }
                              ]
                           },
                           "kind":"Glob",
                           "span":{
                              "lo":0,
                              "hi":0
                           }
                        }
                     ]
                  },
                  "tokens":null
               },
               {
                  "attrs":[
                     {
                        "kind":{
                           "variant":"Normal",
                           "fields":[
                              {
                                 "path":{
                                    "span":{
                                       "lo":0,
                                       "hi":0
                                    },
                                    "segments":[
                                       {
                                          "ident":{
                                             "name":"macro_use",
                                             "span":{
                                                "lo":0,
                                                "hi":0
                                             }
                                          },
                                          "id":9,
                                          "args":null
                                       }
                                    ]
                                 },
                                 "args":"Empty"
                              }
                           ]
                        },
                        "id":null,
                        "style":"Outer",
                        "span":{
                           "lo":0,
                           "hi":0
                        }
                     }
                  ],
                  "id":10,
                  "span":{
                     "lo":0,
                     "hi":0
                  },
                  "vis":{
                     "node":"Inherited",
                     "span":{
                        "lo":0,
                        "hi":0
                     }
                  },
                  "ident":{
                     "name":"std",
                     "span":{
                        "lo":0,
                        "hi":0
                     }
                  },
                  "kind":{
                     "variant":"ExternCrate",
                     "fields":[
                        null
                     ]
                  },
                  "tokens":null
               }
            ],
            "inline":true
         },
         "attrs":[
      
         ],
         "span":{
            "lo":0,
            "hi":94
         },
         "proc_macros":[
      
         ]
      }
      ```
      314b78c5
    • D
      Rollup merge of #71270 - Rustin-Liu:rustin-patch-has-self, r=estebank · e80d3034
      Dylan DPC 提交于
      Fix `has_no_input_arg` check and rename it to `has_only_self_parameter`
      Signed-off-by: NRustin-Liu <rustin.liu@gmail.com>
      
      Fixes https://github.com/rust-lang/rust/pull/70643#discussion_r401571789.
      e80d3034
    • D
      Rollup merge of #71250 - GuillaumeGomez:use-json-instead-of-js, r=kinnison · 2f06ac08
      Dylan DPC 提交于
      Replace big JS dict with JSON parsing
      
      Part of #56545.
      
      @ollie27 suggested that using JSON instead of a JS dict might be faster, so I decided to test it. And the results far exceeded whatever expectations I had...
      
      I used https://github.com/adamgreig/stm32ral for my tests. If you want to build it locally:
      
      ```bash
      $ cargo doc --features doc --open
      ```
      
      But I strongly recommend to do it with this PR. Some numbers:
      
       * Loading a page with the JSON search-index: less than 1 second
       * Loading a page with the JS search-index: crashed after 30 seconds
      
      I think the results are clear enough...
      
      r? @ollie27
      
      cc @rust-lang/rustdoc
      2f06ac08
  3. 20 4月, 2020 19 次提交
  4. 19 4月, 2020 3 次提交