Aleksey Kladov
095b9110b5
Unused params
2021-03-08 21:45:43 +03:00
Aleksey Kladov
1eb61203b7
Make code generation
just work
...
Contributors don't need to learn about `cargo xtask codegen` if `cargo
test` just does the right thing.
2021-03-08 21:45:37 +03:00
Aleksey Kladov
0f6f458cc1
Make working with codegen less annoying
...
We probably should look into removing `xtask codegen` altogether. The
test workflow works perfectly for package.json config.
There are two things preventing that:
* Lint completions are generated on demand.
* Docs are not committed to the repository.
2021-03-08 21:45:06 +03:00
Aleksey Kladov
0296cd590e
⬆️ xflags
2021-03-07 11:12:59 +03:00
Aleksey Kladov
bf4aaa4fb0
Underengineer cargo xtask install --client
2021-03-05 20:42:41 +03:00
Aleksey Kladov
142f9a03fd
Cleanup install command
2021-03-05 11:51:32 +03:00
Aleksey Kladov
97b1550dda
Fix regression where the client was not installed
2021-03-05 11:12:40 +03:00
Aleksey Kladov
84483f672f
Fix xflags fallout
...
https://github.com/rust-analyzer/rust-analyzer/pull/7847#issuecomment-788920830
2021-03-02 16:50:03 +03:00
bors[bot]
61c73caa30
Merge #7836
...
7836: Check for path dev-dependencies with a version number r=lnicola a=lnicola
Closes https://github.com/rust-analyzer/rust-analyzer/pull/7828#issuecomment-788174522 .
This looks a bit ugly, but at least fixes an issues where we missed target-specific dependencies.
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-03-02 08:38:25 +00:00
Aleksey Kladov
d8f7f2dee9
Update xtask/src/flags.rs
...
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2021-03-01 22:29:17 +03:00
Laurențiu Nicola
203cfff826
Check for path dev-dependencies with a version number
2021-03-01 21:13:16 +02:00
Aleksey Kladov
4ce20b80c5
Use cli parser with auto-generated help
2021-03-01 22:12:43 +03:00
Aleksey Kladov
979c26e1ae
Axe pre-commit
2021-03-01 21:30:21 +03:00
Aleksey Kladov
d9dcfd81c5
Simplify xtask
...
lib/bin/test separation isn't really needed.
2021-03-01 20:26:37 +03:00
bors[bot]
f682627da4
Merge #7797
...
7797: Format generated lints and features manually r=matklad a=lnicola
As `quote` and `rustfmt` leave them on a single line, which makes running `grep` in the repository quite annoying.
Also removes a dead `gen_features.rs` file (`gen_lint_completions.rs` does the same thing).
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-02-27 14:56:24 +00:00
Laurențiu Nicola
351670f620
Remove dead gen_features code
2021-02-27 16:26:02 +02:00
Laurențiu Nicola
0fb01367f5
Format generated features manually instead of relying on rustfmt
2021-02-27 16:25:06 +02:00
Aleksey Kladov
68a9411845
reliable memory usage during benchmarking
2021-02-23 21:02:17 +03:00
Chetan Khilosiya
e4756cb4f6
7526: Rename crate assists to ide_assists.
2021-02-23 00:59:16 +05:30
Aleksey Kladov
3db64a400c
rename completion -> ide_completion
...
We don't have completion-related PRs in flight, so lets do it
2021-02-17 17:53:31 +03:00
andylizi
726f9e3163
Build dist-x86_64-unknown-linux-musl releases
2021-02-13 18:45:07 +08:00
bors[bot]
935830d05b
Merge #7655
...
7655: Include a commit log summary in the changelog r=matklad a=lnicola
This version omits any direct pushes, and maybe even pull requests merged from the GitHub UI. But I think it makes writing the release notes easier.
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-02-12 18:20:27 +00:00
Laurențiu Nicola
8814d1368d
Include a commit log summary in the changelog
2021-02-12 19:53:58 +02:00
kjeremy
cb24d323fe
Bump rust to latest stable 1.50
2021-02-12 12:00:05 -05:00
Laurențiu Nicola
c0ff61c4b9
Track remote branch on xtask promote
2021-02-09 16:52:44 +02:00
kjeremy
8ff69055b9
Do not overwrite lock file
...
Use `npm ci` instead of `npm install`. `npm install` will overwrite
the lock file if you have a newer npm version than the one that
generated the package-lock.json
2021-02-05 10:57:36 -05:00
Edwin Cheng
e73ffbf1e5
Add cargo file tidy test
2021-02-03 22:01:09 +08:00
Aleksey Kladov
d35bda6429
Make always-assert crate reusable
2021-01-26 22:13:42 +03:00
Aleksey Kladov
feb252138d
Fix mega bug
...
https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Manual.20content.20is.20duplicated
2021-01-21 16:37:46 +03:00
kjeremy
db0aaeca33
Update pico-args
...
Should maintains existing behavior
2021-01-19 11:56:45 -05:00
Jonas Schievink
9b5fa1c61a
Add back jemalloc support
2021-01-18 19:39:46 +01:00
Jonas Schievink
872bf09381
Add MacroType
syntax
2021-01-18 17:56:35 +01:00
Daiki Ihara
85cd3524e2
Add support for yiled keyword
2021-01-15 23:35:17 +09:00
Aleksey Kladov
c62f1c762f
Add build benchmark xtask command
2021-01-11 21:39:16 +03:00
Kevaundray Wedderburn
72b9a4fbd3
Change <|> to $0 - Rebase
2021-01-07 12:09:23 +00:00
Laurențiu Nicola
08e609bef0
Stop using beta toolchain in xtask dist
2021-01-02 09:51:41 +02:00
bors[bot]
fd1fcf2c2e
Merge #7010
...
7010: Update ungrammar for const block patterns r=matklad a=Veykril
Fixes #6848
Adds const blocks and const block patterns to the AST and parses them.
Blocked on https://github.com/rust-analyzer/ungrammar/pull/17/ , will merge that PR there once this one gets the OK so I can remove the local ungrammar dependency path and fix the Cargo.lock.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-23 10:37:30 +00:00
Laurențiu Nicola
25a987703c
Don't release uncompressed binaries under the new naming scheme
2020-12-23 08:46:38 +02:00
Lukas Wirth
be7260485e
Update ungrammar for const block patterns
2020-12-23 01:26:31 +01:00
Laurențiu Nicola
e881815115
Build aarch64-apple-darwin binaries on CI
2020-12-22 13:18:00 +02:00
Lukas Wirth
dd496223f5
Node-ify lifetimes
2020-12-16 14:16:09 +01:00
Jonas Schievink
c1cb595382
Move to upstream macro_rules!
model
2020-12-15 15:37:37 +01:00
Jeremy Kolb
26a1675764
Remove some redundant allocations
2020-12-12 12:27:09 -05:00
Jonas Schievink
cb35d3a05a
metrics: go back to cmd!
2020-12-11 18:24:42 +01:00
Jonas Schievink
64752ef5e9
Fix typo leading to metrics loss
2020-12-11 17:55:52 +01:00
Jonas Schievink
7fc4ba000e
Capture memory usage metrics
2020-12-11 17:30:32 +01:00
Jonas Schievink
75543d8ca1
Revert "Fix memory usage metrics"
2020-12-11 16:50:17 +01:00
Jonas Schievink
777d8dca26
Fix memory usage metrics
2020-12-11 15:47:40 +01:00
Aleksey Kladov
0890512e1c
Include config into the manual
2020-12-09 15:31:10 +03:00
Jérémy
019ad25939
Update usage string to include code-exploration client.
2020-12-08 20:28:32 +01:00
Jérémy
7cf2c0d46f
Add client install support for code-exploration
build.
2020-12-08 19:23:25 +01:00
Aleksey Kladov
75d2075665
Revert "Upgrade version of npms lockfile"
...
This reverts commit 3d559afc11
.
VS Code uses nodejs 12 still, so its better to stick to the format it
understands.
2020-11-13 16:17:52 +01:00
Aleksey Kladov
3d559afc11
Upgrade version of npms lockfile
2020-11-12 20:39:16 +01:00
Aleksey Kladov
5ba4f949c2
Kill RAW_ literals
...
Syntactically, they are indistinguishable from non-raw versions, so it
doesn't make sense to separate then *at the syntax* level.
2020-11-06 22:23:14 +01:00
Aleksey Kladov
3820b26a93
Generate token for ints and floats
2020-11-06 18:19:24 +01:00
Aleksey Kladov
b610118453
Deny unreachable-pub
...
It's very useful when `pub` is equivalent to "this is crate's public
API", let's enforce this!
Ideally, we should enforce it for local `cargo test`, and only during
CI, but that needs https://github.com/rust-lang/cargo/issues/5034 .
2020-11-02 14:07:08 +01:00
Igor Aleksanov
19c1067202
Reorganize completions structure
2020-10-25 10:59:15 +03:00
bors[bot]
0833484914
Merge #6259
...
6259: allow xtask install --client[=CLIENT] to specify client r=Emilgardis a=Emilgardis
Co-authored-by: Emil Gardström <emil.gardstrom@gmail.com>
2020-10-20 20:49:17 +00:00
Emil Gardström
c5b1c36b2b
rename flag --client-code to --client on xtask install
2020-10-20 22:37:02 +02:00
Benjamin Coenen
aa031e91f4
add completions for clippy lint in attributes
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-20 21:29:31 +02:00
Igor Aleksanov
b8a74e0370
Add generated_diagnostic.adoc to the release.rs and smoke_test_docs_generation
2020-10-19 21:07:40 +03:00
Igor Aleksanov
aa9be4d523
Use xshell::read_file instead of fs::read_to_string
2020-10-19 20:58:32 +03:00
Igor Aleksanov
52b19c39e8
Create xtask module to generate diagnostics docs
2020-10-19 20:55:16 +03:00
Emil Gardström
d0bb051ef7
allow xtask install --client-code[=CLIENT] to specify client
2020-10-17 10:28:12 +02:00
Aleksey Kladov
49a90d4c31
Switch from not_bash to xshell
2020-10-17 02:42:42 +02:00
Aleksey Kladov
c7a079d32d
Improve compile time a tiny bit
2020-10-16 19:47:47 +02:00
bors[bot]
e6a05e6566
Merge #5651
...
5651: Add track_env_var to the proc macro server r=kjeremy a=lnicola
See https://github.com/rust-lang/rust/pull/74653 .
Fixes #6054 .
Fixes #5640 , maybe.
Should be merged when 1.47 is released.
Proc macros still don't work for me, but it no longer crashes.
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-10-08 14:27:30 +00:00
Laurențiu Nicola
3d169bd3f4
Add track_env_var to the proc macro server
2020-10-08 17:06:20 +03:00
Aleksey Kladov
bff812ddfe
Fix feature name
2020-10-05 20:25:11 +02:00
Jonas Schievink
61a8d71724
Add GitHub Sponsors link to blog post template
2020-09-14 15:56:30 +02:00
kjeremy
11758d518a
Up proc-macro2 to 1.20
...
This changes the way Display is implemented
2020-09-03 17:40:12 -04:00
Veetaha
4bc56ebd93
Replace custom not_bash::fs2
setup with fs_err crate
2020-08-29 17:47:13 +03:00
Aleksey Kladov
4b989009e3
CONST LOOPS ARE HERE
2020-08-27 18:12:01 +02:00
Jonas Schievink
f3ac19e8cd
Support extern types
2020-08-24 22:02:55 +02:00
Aleksey Kladov
863b1fb731
⬆️ ungrammar
2020-08-21 19:14:05 +02:00
Aleksey Kladov
27ccc95c60
Cleanup feature generation
2020-08-18 19:36:27 +02:00
Dmitry
45f171c43a
fmt
2020-08-18 19:51:04 +07:00
Dmitry
4d047afe60
fix reformat
2020-08-18 19:44:52 +07:00
Dmitry
e18748ed15
Merge remote-tracking branch 'rust-analyzer/master'
2020-08-18 19:37:22 +07:00
Aleksey Kladov
6cff076513
Revive cache cleaning
...
The idea here is that, on CI, we only want to cache crates.io
dependencies, and not local crates. This keeps the size of the cache
low, and also improves performance, as network and moving files on
disk (on Windows) can be slow.
2020-08-18 11:07:21 +02:00
Aleksey Kladov
b82d967182
Mention that generated .adocs are generaterd
2020-08-17 15:49:46 +02:00
Dmitry
73315c9168
synchronizing changes
2020-08-15 02:37:43 +07:00
Dmitry
178c3e135a
Merge remote-tracking branch 'origin/master'
2020-08-15 01:32:05 +07:00
Dmitry
06ff8e6c76
refactor requirements put forward mkladov
2020-08-15 01:25:08 +07:00
Dmitry
7f11cc42de
Merge branch 'master' of https://github.com/Fihtangolz/rust-analyzer into master
2020-08-14 23:16:15 +07:00
Dmitry Opokin
782238d2a9
Update xtask/src/codegen/gen_unstable_future_descriptor.rs
...
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-14 23:11:50 +07:00
Dmitry
c8a6ecc075
Revert "replase sparse-checkout by github api"
...
This reverts commit 034db28c54
.
2020-08-14 23:09:47 +07:00
Dmitry
034db28c54
replase sparse-checkout by github api
2020-08-14 21:58:04 +07:00
Aleksey Kladov
fc34403018
Rename ra_assists -> assists
2020-08-13 17:33:38 +02:00
Aleksey Kladov
50f8c1ebf2
Somewhat fix pre-cache
2020-08-13 16:31:04 +02:00
Aleksey Kladov
a1c187eef3
Rename ra_syntax -> syntax
2020-08-12 18:30:53 +02:00
Aleksey Kladov
50a02eb359
Rename ra_parser -> parser
2020-08-12 17:14:23 +02:00
Dmitry
4874c559ef
remove fmt skip attr
2020-08-10 14:17:45 +07:00
Dmitry
fab733b3ae
Revert "fixes"
...
This reverts commit b602c73911
.
2020-08-10 00:23:35 +07:00
Dmitry
ceadcf23fe
add skip for generate file
2020-08-10 00:09:53 +07:00
Dmitry
b602c73911
fixes
2020-08-09 23:55:45 +07:00
Dmitry
cff0fba5e5
apply format
2020-08-09 23:47:02 +07:00
Dmitry
a2eb7e5739
fix unused
2020-08-09 21:03:42 +07:00
Dmitry
8068302fef
Merge remote-tracking branch 'origin/master'
2020-08-09 20:39:32 +07:00
Dmitry
1a43a0f63e
Added competition for unstable features
...
Added xtask for download unstable book from rust repository and codegene for it. Also small changes from lint
2020-08-09 20:33:47 +07:00
Aleksey Kladov
bff8dd0949
Update grammar
2020-08-01 13:47:19 +02:00
Aleksey Kladov
a015714def
Better JSON serialization in metrics
2020-08-01 04:09:52 +02:00
Aleksey Kladov
b9c6aa9ec9
Unify naming of tuple fields
2020-07-31 22:04:12 +02:00
Aleksey Kladov
675e86becf
Section headers
2020-07-31 21:56:52 +02:00
Aleksey Kladov
22d295ceaa
Rename DotDotPat -> RestPat
2020-07-31 21:45:29 +02:00
Aleksey Kladov
81359af733
Simplify trait gramamr
2020-07-31 20:22:20 +02:00
Aleksey Kladov
9818108798
Rename BindPat -> IdentPat
2020-07-31 20:12:10 +02:00
Aleksey Kladov
6791eb9685
Rename PalceholderPat -> WildcardPat
2020-07-31 20:07:21 +02:00
Aleksey Kladov
d7f75db90d
Reorder
2020-07-31 20:04:40 +02:00
Aleksey Kladov
14cb96ec0e
Allign RecordPat with RecordExpr
2020-07-31 20:00:48 +02:00
Aleksey Kladov
572f1c08b6
Minor gramamr reorder
2020-07-31 19:49:26 +02:00
bors[bot]
5cade89d73
Merge #5630
...
5630: Remove dead code r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-31 16:56:57 +00:00
Aleksey Kladov
45e6052406
Remove dead code
2020-07-31 18:53:10 +02:00
Aleksey Kladov
c1c97b2896
Fix leading colon
2020-07-31 18:49:42 +02:00
Aleksey Kladov
ddf08daddf
Fix const arguments grammar
2020-07-31 18:46:07 +02:00
Aleksey Kladov
040b4c800d
Fix GenericArgs grammar
2020-07-31 18:41:37 +02:00
Aleksey Kladov
d21b5db891
fixup! Finalize Path grammar
2020-07-31 18:30:02 +02:00
Aleksey Kladov
91781c7ce8
Rename TypeArgList -> GenericArgList
2020-07-31 18:29:29 +02:00
Aleksey Kladov
54fd09a9ca
Finalize Path grammar
2020-07-31 18:27:23 +02:00
Aleksey Kladov
8d28289d0f
Specify literal tokens
2020-07-31 18:16:08 +02:00
Aleksey Kladov
7980a7e19a
Minor
2020-07-31 18:10:46 +02:00
Aleksey Kladov
633aace411
Rename LambdaExpr -> ClosureExpr
2020-07-31 17:08:58 +02:00
Aleksey Kladov
bfcee63e75
Work on expressions grammar
2020-07-31 16:52:08 +02:00
Aleksey Kladov
d4d986c7f8
Item is a Stmt
2020-07-31 15:51:01 +02:00
Aleksey Kladov
a7ca6583fb
Handwrite Stmt
2020-07-31 15:40:48 +02:00
Aleksey Kladov
4d38b0dce1
Move Stmt Grammar
2020-07-31 15:27:40 +02:00
Aleksey Kladov
c04c06c4bc
Finalize WhereClause gramamr
2020-07-31 15:13:00 +02:00
Aleksey Kladov
b250ae6c55
Finalize TypeBound grammar
2020-07-31 15:01:18 +02:00
Aleksey Kladov
a6527ed92c
"Finalize" Types grammar
...
Note that `for` type is rust-analyzer's own invention.
Both the reference and syn allow `for` only for fnptr types, and we
allow them everywhere. This needs to be checked with respect to type
bounds grammar...
2020-07-31 14:40:28 +02:00
Aleksey Kladov
a6e45c6c69
Reame PlaceholderType -> InferType
2020-07-31 14:12:51 +02:00
Aleksey Kladov
08ea2271e8
Rename TypeRef -> Type
...
The TypeRef name comes from IntelliJ days, where you often have both
type *syntax* as well as *semantical* representation of types in
scope. And naming both Type is confusing.
In rust-analyzer however, we use ast types as `ast::Type`, and have
many more semantic counterparts to ast types, so avoiding name clash
here is just confusing.
2020-07-31 12:14:37 +02:00
Aleksey Kladov
e0f21133cd
Reorder
2020-07-31 12:02:42 +02:00
Aleksey Kladov
f95f425ae4
Use ty to access most TypeRefs
2020-07-30 21:02:55 +02:00
Aleksey Kladov
2e2642efcc
Remove TypeAscriptionOwner
2020-07-30 20:51:43 +02:00
Aleksey Kladov
fbe60a2e28
simplify
2020-07-30 20:38:15 +02:00
Aleksey Kladov
fcce07d2d1
Finalize attribute grammar
2020-07-30 20:21:32 +02:00
Aleksey Kladov
01d6c3836b
Dead code
2020-07-30 19:10:46 +02:00
Aleksey Kladov
71a4d32562
Minor
2020-07-30 19:10:22 +02:00
Aleksey Kladov
ceca94536c
Finalize visibility grammar
2020-07-30 18:55:49 +02:00
Aleksey Kladov
3dce34aaf8
Introduce GenericParam
2020-07-30 18:52:02 +02:00
Aleksey Kladov
917c89c103
Finaize item grammar
2020-07-30 18:37:46 +02:00
Aleksey Kladov
c5798c4d75
Finalize impl Grammar
2020-07-30 18:28:28 +02:00
Aleksey Kladov
c83467796b
Finalize Trait grammar
2020-07-30 18:17:28 +02:00
Aleksey Kladov
b2cdb0b226
Fix param gramamr
2020-07-30 18:15:08 +02:00
Aleksey Kladov
3cd4112bdc
Finalize const&static grammar
2020-07-30 18:02:20 +02:00
Aleksey Kladov
6b25f640a6
Finalize Enum grammar
2020-07-30 17:57:58 +02:00
Aleksey Kladov
1766aae145
Rename EnumVariant -> Variant
2020-07-30 17:56:53 +02:00
Aleksey Kladov
609680ef97
Rename EnumDef -> Enum
2020-07-30 17:52:53 +02:00
Aleksey Kladov
216a5344c8
Rename StructDef -> Struct
2020-07-30 17:50:40 +02:00
Aleksey Kladov
1ae4721c9c
Finalize union grammar
2020-07-30 17:38:52 +02:00
Aleksey Kladov
8ddbf06e39
Finalize structs grammar
2020-07-30 17:24:07 +02:00
Aleksey Kladov
b043947301
Simplify
2020-07-30 17:19:51 +02:00
Aleksey Kladov
d549f6164c
Simplify codegen
2020-07-30 17:10:44 +02:00
Aleksey Kladov
0a9e3ccc26
Rename FieldDef -> Field
2020-07-30 16:49:13 +02:00
Aleksey Kladov
6f8aa75329
Rename RecordLit -> RecordExpr
2020-07-30 16:21:30 +02:00
Aleksey Kladov
98ec5f2c21
Minor, reorder
2020-07-30 16:12:35 +02:00
Aleksey Kladov
28ef4c375a
Rename TypeParamList -> GenericParamList
2020-07-30 15:36:21 +02:00
Aleksey Kladov
eb2f806344
Rename TypeAliasDef -> TypeAlias
2020-07-30 15:25:46 +02:00
Aleksey Kladov
1142112c70
Rename FnDef -> Fn
2020-07-30 15:16:05 +02:00
Aleksey Kladov
b1332670c7
Rename UseItem -> Use
2020-07-30 14:20:33 +02:00
Aleksey Kladov
e381c02ef3
Add comma list to use tree
2020-07-30 14:20:33 +02:00
Aleksey Kladov
d032f872b6
Finish extern crates grammar
2020-07-30 12:31:07 +02:00
Aleksey Kladov
6cd2131caf
Rename Rename
2020-07-30 11:58:41 +02:00
Aleksey Kladov
7d09e5ed61
Finish Module grammar
2020-07-30 11:50:56 +02:00
Aleksey Kladov
2984da672e
Split ItemList & AssocItemList
2020-07-30 11:50:56 +02:00
Aleksey Kladov
ede5d17b04
Finish SourceFile grammar
2020-07-30 00:46:39 +02:00
Aleksey Kladov
6636f56e79
Rename ModuleItem -> Item
2020-07-30 00:23:03 +02:00
Aleksey Kladov
76202a2c73
Rename NomialDef -> AdtDef
2020-07-29 19:22:15 +02:00
Aleksey Kladov
3d28292157
Switch to ungrammar from ast_src
...
The primary advantage of ungrammar is that it (eventually) allows one
to describe concrete syntax tree structure -- with alternatives and
specific sequence of tokens & nodes.
That should be re-usable for:
* generate `make` calls
* Rust reference
* Hypothetical parser's evented API
We loose doc comments for the time being unfortunately. I don't think
we should add support for doc comments to ungrammar -- they'll make
grammar file hard to read. We might supply docs as out-of band info,
or maybe just via a reference, but we'll think about that once things
are no longer in flux
2020-07-29 19:18:25 +02:00
Aleksey Kladov
0d1357be05
Dead code
2020-07-29 17:35:12 +02:00
Aleksey Kladov
9fb1624c5e
Remove dead code
2020-07-29 15:46:47 +02:00
Aleksey Kladov
dc18ff51c3
Remove dead code
2020-07-29 15:12:19 +02:00
Aleksey Kladov
627eddbc7e
Owned AST IR
2020-07-29 12:04:22 +02:00
Aleksey Kladov
451edcc098
Add rustc-perf to metrics
2020-07-25 10:35:45 +02:00
Aleksey Kladov
101cdc57c2
Add self-analysis-stats to metrics
2020-07-25 00:16:21 +02:00
Aleksey Kladov
75e67ee74e
Real metrics
2020-07-24 21:07:58 +02:00
Aleksey Kladov
cdddd205f6
Fix metrics
2020-07-24 21:03:49 +02:00
Aleksey Kladov
c0b2b15123
Fix metrics
2020-07-24 20:53:27 +02:00
Aleksey Kladov
cc0c8b2882
Fix email
2020-07-24 20:42:29 +02:00
Aleksey Kladov
d9d00988f2
fix syntax
2020-07-24 20:37:44 +02:00
Aleksey Kladov
ae3506d002
Fix another name
2020-07-24 20:34:30 +02:00
Aleksey Kladov
80d6bdbb30
fix name
2020-07-24 20:21:18 +02:00
Aleksey Kladov
de714640bd
Add metrics
2020-07-24 20:05:16 +02:00
Aleksey Kladov
93dfa39766
Minor
2020-07-24 16:11:24 +02:00
Aleksey Kladov
deed44a472
Remove support for jemalloc
...
We only used it for measuring memory usage, but now we can use glibc's
allocator for that just fine
2020-07-22 13:40:45 +02:00
Aleksey Kladov
8339281d4f
Fix typo
2020-07-20 18:59:46 +02:00
bors[bot]
b8b41c5f41
Merge #5354
...
5354: Add opt-in mimalloc feature r=matklad a=ivan
This adds a `mimalloc` feature to use [mimalloc](https://github.com/microsoft/mimalloc ) via [mimalloc_rust](https://github.com/purpleprotocol/mimalloc_rust ), and a corresponding `cargo xtask install --server --mimalloc`.
In my tests on Linux, mimalloc seems to run consistently faster than jemalloc and uses only slightly more memory in `analysis-stats` on chalk. Also, builds with mimalloc produce a binary 3MB smaller than builds with jemalloc.
A summary of `env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/` runs on NixOS master on an Intel 4790K in VMware Workstation:
<table>
<tr>
<td></td><td>self-reported time</td><td>elapsed time</td><td>max RSS</td>
</tr>
<tr><td>glibc 2.30 run 1</td><td>225.1 sec</td><td>3:46.91</td><td>1075208</td></tr>
<tr><td>glibc 2.30 run 2</td><td>228.4 sec</td><td>3:50.13</td><td>1074996</td></tr>
<tr><td>jemalloc run 1</td><td>201.8 sec</td><td>3:23.03</td><td>1055960</td></tr>
<tr><td>jemalloc run 2</td><td>199.2 sec</td><td>3:20.41</td><td>1065040</td></tr>
<tr><td>mimalloc run 1</td><td>188.6 sec</td><td>3:09.77</td><td>1105584</td></tr>
<tr><td>mimalloc run 2</td><td>185.0 sec</td><td>3:06.23</td><td>1108132</td></tr>
<tr><td>mimalloc + lto run 1</td><td>160.7 sec</td><td>2:41.80</td><td>1106076</td></tr>
<tr><td>mimalloc + lto run 2</td><td>162.2 sec</td><td>2:43.31</td><td>1104268</td></tr>
</tr>
</table>
I included an `lto = true; codegen-units = 1` run out of curiosity, this PR doesn't enable it.
<details>
<summary>analysis-stats benchmark runs</summary>
## default
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 333.880345ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 10.176299461s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 214.968806927s, 0b allocated 0b resident
Total: 225.145114417s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 225.34
System time (seconds): 1.49
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:46.91
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1075208
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 6
Minor (reclaiming a frame) page faults: 294711
Voluntary context switches: 365
Involuntary context switches: 3273
Swaps: 0
File system inputs: 2904
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 332.711598ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.895020518s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 218.5001697s, 0b allocated 0b resident
Total: 228.39519833s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 228.26
System time (seconds): 1.75
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:50.13
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1074996
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 9
Minor (reclaiming a frame) page faults: 294748
Voluntary context switches: 330
Involuntary context switches: 1561
Swaps: 0
File system inputs: 12608
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## jemalloc
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.11s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 356.090374ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 10.176550183s, 439mb allocated 465mb resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 191.607201827s, 993mb allocated 1036mb resident
Total: 201.783937913s, 993mb allocated 1036mb resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 201.07
System time (seconds): 1.89
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:23.03
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1055960
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 357755
Voluntary context switches: 240
Involuntary context switches: 1889
Swaps: 0
File system inputs: 256
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 317.917622ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.902142185s, 439mb allocated 463mb resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 189.295317017s, 993mb allocated 1046mb resident
Total: 199.197555943s, 993mb allocated 1046mb resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 198.64
System time (seconds): 1.67
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:20.41
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1065040
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 369013
Voluntary context switches: 243
Involuntary context switches: 2835
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## mimalloc
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.12s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 332.116806ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.796643695s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 178.82132362s, 0b allocated 0b resident
Total: 188.617975605s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 187.70
System time (seconds): 1.97
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:09.77
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1105584
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 296481
Voluntary context switches: 222
Involuntary context switches: 1868
Swaps: 0
File system inputs: 256
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.13s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 320.046776ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.287690124s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 175.710939697s, 0b allocated 0b resident
Total: 184.998640033s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 184.38
System time (seconds): 1.81
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:06.23
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1108132
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 297055
Voluntary context switches: 374
Involuntary context switches: 2374
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## mimalloc + lto
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.11s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 369.600196ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 7.572726834s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 153.090899101s, 0b allocated 0b resident
Total: 160.663635235s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 160.01
System time (seconds): 1.70
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:41.80
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1106076
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 1
Minor (reclaiming a frame) page faults: 296610
Voluntary context switches: 209
Involuntary context switches: 2798
Swaps: 0
File system inputs: 8
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 334.630658ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 7.71699197s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 154.50351318s, 0b allocated 0b resident
Total: 162.220513775s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 161.52
System time (seconds): 1.74
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:43.31
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1104268
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 296183
Voluntary context switches: 200
Involuntary context switches: 1666
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
</details>
Co-authored-by: Ivan Kozik <ivan@ludios.org>
2020-07-15 09:43:08 +00:00
Ivan Kozik
6710856c10
Add opt-in mimalloc feature
2020-07-14 20:57:51 +00:00
Aleksey Kladov
239a6012eb
Check licenses
2020-07-14 17:14:00 +02:00
Aleksey Kladov
6db29e6b8d
Prefill reviewer
2020-07-13 15:35:52 +02:00
Veetaha
f92bfb5807
Gzip artifacts
...
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
Override miniz_oxide to build it with optimizations
Building this crate with optimizations decreases the gzipping
part of `cargo xtask dist` from `30-40s` down to `3s`,
the overhead for `rustc` to apply optimizations is miserable on this background
2020-07-07 23:30:11 +03:00
Aleksey Kladov
a614d84ff4
Automate rust-analyzer promotion
2020-07-07 18:38:34 +02:00
Aleksey Kladov
faa65d7856
.
2020-07-07 18:12:22 +02:00
Aleksey Kladov
a92b76d823
sponsors link
2020-07-06 17:13:08 +02:00
Aleksey Kladov
4b17a90c41
Add sponsors section to changelog
2020-06-22 15:11:22 +02:00
bors[bot]
f3d73865d6
Merge #4855
...
4855: Use more idiomatic style for lifetimes in generated code r=matklad a=Veetaha
Co-authored-by: Veetaha <veetaha2@gmail.com>
2020-06-12 12:49:30 +00:00
Veetaha
4fefc7d06c
Simplify
2020-06-12 02:56:06 +03:00
Veetaha
33e009ec42
Use more idiomatic style for lifetimes in generated code
2020-06-12 01:23:04 +03:00
Matthew Jasper
506e1ddbfa
Separating parsing of for
in predicates and types
2020-06-10 11:30:58 +01:00
Aleksey Kladov
cbc5eb8738
Refactor
2020-06-08 14:05:14 +02:00