Commit graph

636 commits

Author SHA1 Message Date
flip1995
65c81dee75
Allow default_hash_types in some crates 2019-06-24 10:45:20 +02:00
Mazdak Farrokhzad
74380b3336
Rollup merge of #62068 - ia0:fix_meta_var, r=petrochenkov
Fix meta-variable binding errors in macros

The errors are either:
- The meta-variable used in the right-hand side is not bound (or defined) in the
  left-hand side.
- The meta-variable used in the right-hand side does not repeat with the same
  kleene operator as its binder in the left-hand side. Either it does not repeat
  enough, or it uses a different operator somewhere.

This change should have no semantic impact.

Found by https://github.com/rust-lang/rust/pull/62008
2019-06-23 01:59:20 +02:00
Julien Cretin
b8106b59d2 Fix meta-variable binding errors in macros
The errors are either:
- The meta-variable used in the right-hand side is not bound (or defined) in the
  left-hand side.
- The meta-variable used in the right-hand side does not repeat with the same
  kleene operator as its binder in the left-hand side. Either it does not repeat
  enough, or it uses a different operator somewhere.

This change should have no semantic impact.
2019-06-23 01:30:41 +02:00
bors
4a365a29d6 Auto merge of #61020 - HeroicKatora:master, r=matthewjasper
librustc_data_structures: Speedup union of sparse and dense hybrid set

This optimization speeds up the union of a hybrid bitset when that
switches it from a sparse representation to a dense bitset. It now
clones the dense bitset and integrate only the spare elements instead of
densifying the sparse bitset, initializing all elements, and then a
union on two dense bitset, touching all words a second time.

It's not completely certain if the added complexity is worth it but I would
like to hear some feedback in any case. Benchmark results from my machine:

```
Now:  bit_set::union_hybrid_sparse_to_dense ... bench:          72 ns/iter (+/- 5)
Previous: bit_set::union_hybrid_sparse_to_dense ... bench:          90 ns/iter (+/- 6)
```

This being the second iteration of trying to improve the speed, since I missed the return value in the first, and forgot to run the relevant tests. Oops.
2019-06-22 15:12:15 +00:00
bors
4edff843dd Auto merge of #61347 - Centril:stabilize-underscore_const_names, r=petrochenkov
Stabilize underscore_const_names in 1.37.0

You are now permitted to write:

```rust
const _: $type_expression = $term_expression;
```

That is, we change the [grammar of items](9d1984d7ae/grammar/item.lyg (L3-L42)), as written in [the *`.lyg`* notation](263bf161da (grammar)), from:

```java
Item = attrs:OuterAttr* vis:Vis? kind:ItemKind;
ItemKind =
  | ...
  | Const:{ "const" name:IDENT ":" ty:Type "=" value:Expr ";" }
  | ...
  ;
```

into:

```java
Item = attrs:OuterAttr* vis:Vis? kind:ItemKind;
ItemKind =
  | ...
  | Const:{ "const" name:IdentOrUnderscore ":" ty:Type "=" value:Expr ";" }
  | ...
  ;

IdentOrUnderscore =
  | Named:IDENT
  | NoName:"_"
  ;
```

r? @petrochenkov
2019-06-16 20:33:55 +00:00
chansuke
0d77084eff Separate librustc_data_structures module 2019-06-16 14:17:01 +03:00
bors
3f511ade5b Auto merge of #60669 - c410-f3r:attrs-fn, r=petrochenkov
Allow attributes in formal function parameters

Implements https://github.com/rust-lang/rust/issues/60406.

This is my first contribution to the compiler and since this is a large and complex project, I am not fully aware of the consequences of the changes I have made.

**TODO**

- [x] Forbid some built-in attributes.
- [x] Expand cfg/cfg_attr
2019-06-12 07:38:01 +00:00
Tyler Mandry
66e7493543 Add more functionality to BitMatrix 2019-06-10 14:46:40 -07:00
Mazdak Farrokhzad
e62c9d7917 Stabilize underscore_const_names: stage0 -> bootstrap. 2019-06-10 06:17:39 +02:00
Mazdak Farrokhzad
56d71c2910 Stabilize underscore_const_names. 2019-06-10 06:17:39 +02:00
Caio
1eaaf440d5 Allow attributes in formal function parameters 2019-06-09 07:58:40 -03:00
Eduard-Mihai Burtescu
961fe5479f rustc: use indexmap instead of a plain vector for upvars. 2019-06-01 19:17:22 +03:00
Tim Vermeulen
f1d0829e20 Add Step::sub_usize 2019-05-25 02:53:08 +02:00
Andreas Molzer
3f28811774 Add documentation on the reasoning
Explains the thought process behind adding the union algorithm and
discusses the alternative and heuristic behind.
2019-05-22 21:08:29 +02:00
Andreas Molzer
8877f4c30d Improve union of sparse and dense hybrid set
This optimization speeds up the union of a hybrid bitset when that
switches it from a sparse representation to a dense bitset. It now
clones the dense bitset and integrate only the spare elements instead of
densifying the sparse bitset, initializing all elements, and then a
union on two dense bitset, touching all words a second time.
2019-05-22 17:44:14 +02:00
Andreas Molzer
7fa6e878be Provide some benchmarks for bitset hybrid union 2019-05-22 16:16:56 +02:00
Ralf Jung
a2168b0259 update doc comment 2019-05-21 17:14:09 +02:00
Ralf Jung
5ea5fe3072 static_assert: make use of anonymous constants 2019-05-21 09:10:24 +02:00
Mazdak Farrokhzad
581cf70367
Rollup merge of #60959 - petrochenkov:sassert, r=estebank
rustc: Improve type size assertions

Now they
- Tell what the new size is, when it changes
- Do not require passing an identifier

```
   ::: src\libsyntax\parse\token.rs:223:1
    |
223 |    static_assert_size!(Token, 123);
    |    -------------------------------- in this macro invocation
    |
    = note: expected type `[(); 123]`
               found type `[(); 16]`
```
2019-05-20 23:03:07 +02:00
Michael Woerister
a79c06a9ce Document requirements for HashStable implementations better. 2019-05-20 10:36:31 +02:00
Vadim Petrochenkov
88fa5c6a45 Improve type size assertions
Now they
- Tell what the new size is, when it changes
- Do not require passing an identifier
2019-05-19 13:59:44 +03:00
Michael Woerister
eed1e1ecd2 Remove unused field from StableHasher. 2019-05-17 15:27:08 +02:00
Marcel Hellwig
cc314b066a Remove bitrig support from rust 2019-05-13 11:09:06 +02:00
Jesper Steen Møller
6da7649f61 Delegate SmallVec's stable_hash to array's stable_hash. 2019-05-04 20:29:35 +02:00
Jesper Steen Møller
6802082039 Hash all of the import_ids for the TraitCandidate. 2019-05-04 20:29:35 +02:00
bors
a9c8c08ecb Auto merge of #60288 - Zoxc:update-rayon, r=nikomatsakis
Update rustc-rayon version

r? @nikomatsakis
2019-04-27 17:08:11 +00:00
John Kåre Alsaker
0e05a9bb85 Update rustc-rayon version 2019-04-26 19:08:36 +02:00
Matthias Geier
be12ab070d Use "capacity" as parameter name in with_capacity() methods
Closes #60271.
2019-04-26 18:43:24 +02:00
Mazdak Farrokhzad
92702c1cff
Rollup merge of #59648 - alex:must-use-result, r=alexcrichton
Add must_use annotations to Result::is_ok and is_err

Discussed in #59610
2019-04-15 18:23:39 +02:00
Mazdak Farrokhzad
1888b55d7b
Rollup merge of #59804 - Zoxc:cleaner-jobserver, r=alexcrichton
Clean up jobserver integration

cc @alexcrichton
2019-04-14 00:23:34 +02:00
Edd Barrett
3262d1e252 Kill dead code dominator code. 2019-04-09 11:48:31 +01:00
John Kåre Alsaker
03727a4f25 Clean up jobserver integration 2019-04-09 07:44:10 +02:00
Alex Gaynor
ce5d69480a Add must_use annotations to Result::is_ok and is_err 2019-04-08 12:58:09 -04:00
varkor
3683f51352 Update ena to version 0.13.0 2019-03-27 09:44:55 +00:00
varkor
443a2d4f86 Update ena 2019-03-27 09:44:55 +00:00
John Kåre Alsaker
3936aff216 Use derive macro for HashStable 2019-03-13 00:03:13 +01:00
John Kåre Alsaker
48757a70a3 Fix newtype_index 2019-03-13 00:03:10 +01:00
John Kåre Alsaker
51938c61f6 Make the rustc driver and interface demand driven 2019-03-10 04:49:45 +01:00
Mazdak Farrokhzad
f32d62e5ae
Rollup merge of #58679 - Zoxc:passes-refactor, r=michaelwoerister
Refactor passes and pass execution to be more parallel

For `syntex_syntax` (with 16 threads and 8 cores):
- Cuts `misc checking 1` from `0.096s` to `0.08325s`.
- Cuts `misc checking 2` from `0.3575s` to `0.2545s`.
- Cuts `misc checking 3` from `0.34625s` to `0.21375s`.
- Cuts `wf checking` from `0.3085s` to `0.05025s`.

Reduces overall execution time for `syntex_syntax` (with 8 threads and cores) from `4.92s` to `4.34s`.

Subsumes https://github.com/rust-lang/rust/pull/58494
Blocked on https://github.com/rust-lang/rust/pull/58250

r? @michaelwoerister
2019-03-09 17:18:20 +01:00
Andy Russell
daf80f721b
expand unused doc comment diagnostic
Report the diagnostic on macro expansions, and add a label indicating
why the comment is unused.
2019-03-08 12:39:50 -05:00
John Kåre Alsaker
db9a1c1aaf Add some comments 2019-03-06 04:47:08 +01:00
John Kåre Alsaker
7cc7b8f190 Execute all parallel blocks even if they panic in a single-threaded compiler 2019-03-06 04:47:08 +01:00
John Kåre Alsaker
d2923e5a77 Run the first block in a parallel! macro directly in the scope which guarantees that it will run immediately 2019-03-06 04:47:03 +01:00
Mark Rousskov
2870015b7b Bootstrap compiler update for 1.35 release 2019-03-02 09:05:34 -07:00
John Kåre Alsaker
35a1b91c4b Address comments 2019-03-01 01:15:38 +01:00
John Kåre Alsaker
892fed9d08 Add support for using a jobserver with Rayon 2019-03-01 01:15:37 +01:00
Bastien Orivel
a82f0ce54b Update parking_lot to 0.7
Unfortunately this'll dupe parking_lot until the data_structures crate
is published and be updated in rls in conjunction with crossbeam-channel
2019-02-22 13:49:19 +01:00
John Kåre Alsaker
82ec72391f Always emit an error for a query cycle 2019-02-15 03:51:47 +01:00
bors
b244f61b77 Auto merge of #58341 - alexreg:cosmetic-2-doc-comments, r=steveklabnik
Cosmetic improvements to doc comments

This has been factored out from https://github.com/rust-lang/rust/pull/58036 to only include changes to documentation comments (throughout the rustc codebase).

r? @steveklabnik

Once you're happy with this, maybe we could get it through with r=1, so it doesn't constantly get invalidated? (I'm not sure this will be an issue, but just in case...) Anyway, thanks for your advice so far!
2019-02-12 19:09:24 +00:00
Oliver Scherer
4cfc2ce46d Use allow_internal_unstable in rustc itself 2019-02-11 15:08:17 +01:00