1734 Commits

Author SHA1 Message Date
Chris Simpkins
f38e2701d8 remove unnecessary sys import 2020-02-07 23:49:40 -05:00
Chris Simpkins
e30dd86c61 PEP8 format spacing 2020-02-07 23:47:29 -05:00
bors
00fc203b65 Auto merge of #67334 - estebank:ignore-triple, r=nikomatsakis
Teach `compiletest` to ignore platform triples

The UI tests are written assuming `--remap-path-prefix` is *not used* (`remap-debuginfo` in `config.toml`). The consequence is that the error messages may include paths and snippets into the standard library. When `remap-debuginfo` is enabled, these messages change in format and structure because `rustc` will not show paths and snippets into the standard library.

This normally isn't a problem for the "main" platforms (linux/macos/windows), because the CI infrastructure is set up so that the tests run without `remap-debuginfo`, but the `dist` artifacts are built separately with `remap-debuginfo` enabled. However, some of the lower-tier platforms perform both tests and distribution in a single step with `remap-debuginfo` enabled. This also affects developers and distributors who use `remap-debuginfo`.

To sidestep this problem, we add a way to ignore tests in specific platform triples, and update the overly broad `ignore-x86` rule in affected tests.

Address #46948, #54546, #53081.
2019-12-28 23:02:09 +00:00
Esteban Küber
90bf0d2e33 Ignore i586-unknown-linux-gnu and i586-unknown-musl in tests 2019-12-28 12:26:48 -08:00
Lzu Tao
3a2ef17194 tidy: change msdn links to newer locations
see accouncement at https://docs.microsoft.com/welcome-to-docs
2019-12-25 15:35:54 +00:00
Mark Rousskov
a06baa56b9 Format the world 2019-12-22 17:42:47 -05:00
David Tolnay
d353a4c267
Make dec2flt_table compatible with rustfmt 2019-11-29 20:17:09 -08:00
bors
9420ff4c0e Auto merge of #66597 - MaulingMonkey:pr-natvis-std-collections-hash, r=michaelwoerister
debuginfo:  Support for std::collections::Hash* in windows debuggers.

Okay, I finally needed to debug code involving a HashMap!  Added support for HashSet s as well.

r? @michaelwoerister

### Local Testing

Verified these are passing locally:
```cmd
:: cmd.exe
python x.py test --stage 1 --build x86_64-pc-windows-msvc src/test/debuginfo
python x.py test --stage 1 --build i686-pc-windows-msvc src/test/debuginfo
python x.py test --stage 1 src/tools/tidy

:: MinGW MSYS2
./x.py test --stage 1 --build x86_64-pc-windows-gnu src/test/debuginfo
```

### Related Issues

* https://github.com/rust-lang/rust/issues/36503
* https://github.com/rust-lang/rust/issues/40460
* https://github.com/rust-gamedev/wg/issues/20
2019-11-23 07:27:17 +00:00
MaulingMonkey
839d58ca56 debuginfo: Support for std::collections::Hash* in windows debuggers. 2019-11-20 19:27:42 -08:00
Felix S. Klock II
9b40e0bb9a made gdb pretty-printing script more robust when printing uninitialized vec.
I based this solution on my reading of:

https://rethinkdb.com/blog/make-debugging-easier-with-custom-pretty-printers#what-is-still-to-be-done

That post claims that there is no clean way to check for garbage pointers, and
so this PR adopts the same solution of tentatively attempting to convert a
dererence to a string, which throws a clean exception on garbage that we can
catch and recover from.

I only made the change to vec and not the other pretty printers because I wanted
to focus my effort on the simplest thing that would resolve issue #64343. In
particular, I *considered* generalizing this fix to work on the other datatypes
in the pretty-printing support library, but I don't want to invest effort in
that until after we resolve our overall debugging support strategy; see also
issues #60826 and #65564.
2019-11-20 16:37:17 +01:00
Ralf Jung
18089689c0 also adjust ignore in generated tests 2019-11-02 23:20:28 +01:00
Esteban Küber
7cef8b3495 ignore-x86 instead of ignore-musl 2019-09-22 11:33:13 -07:00
Esteban Küber
f81734bcaa ignore musl target in tests to avoid issues with output differences 2019-09-22 11:33:13 -07:00
Mazdak Farrokhzad
395ec06b6a
Rollup merge of #64617 - alexcrichton:smaller-msi, r=Mark-Simulacrum
rustbuild: Turn down compression on msi installers

This is the same as #64615 except applied to our MSI installers. The
same fix is applied effectively bringing these installers in line with
the gz tarball installers, which are about 3x faster to produce locally
and likely much faster to produce on CI.
2019-09-21 21:24:13 +02:00
Alex Crichton
fde8cfe130 rustbuild: Turn down compression on msi installers
This is the same as #64615 except applied to our MSI installers. The
same fix is applied effectively bringing these installers in line with
the gz tarball installers, which are about 3x faster to produce locally
and likely much faster to produce on CI.
2019-09-19 10:13:15 -07:00
Alex Crichton
8112f71fc9 rustbuild: Turn down compression on exe installers
The Windows dist builders are the slowest builders right now, and the
distribution phase of them is enormously slow clocking in at around 20
minutes to build all the related installers. This commit starts to
optimize these by turning down the compression level in the `exe`
installers. These aren't super heavily used so there's no great need for
them to be so ultra-compressed, so let's dial back the compression
parameters to get closer to the rest of our xz archives. This brings the
installer in line with the gz tarball installer locally, and also brings
the compression settings on par with the rest of our xz installers.
2019-09-19 09:24:42 -07:00
Eduard-Mihai Burtescu
625a9d6a4b lldb: avoid mixing "Hit breakpoint" message with other output. 2019-09-09 19:00:08 +03:00
Alex Crichton
8fe65da935 std: Remove the wasm_syscall feature
This commit removes the `wasm_syscall` feature from the
wasm32-unknown-unknown build of the standard library. This feature was
originally intended to allow an opt-in way to interact with the
operating system in a posix-like way but it was never stabilized.
Nowadays with the advent of the `wasm32-wasi` target that should
entirely replace the intentions of the `wasm_syscall` feature.
2019-08-28 08:34:31 -07:00
Lzu Tao
d649ff3c0c Check for lldb existences 2019-07-14 04:19:39 +00:00
Mazdak Farrokhzad
cd1fa00446
Rollup merge of #62337 - Mark-Simulacrum:fix-cpu-usage-script, r=alexcrichton
Fix bucket in CPU usage script

r? @alexcrichton
2019-07-04 01:38:59 +02:00
Mark Rousskov
b4712f0410 Fix bucket in CPU usage script 2019-07-03 10:19:59 -04:00
cclauss
a0e5fcf146
import gdb for explicit access to gdb.current_objfile() 2019-06-28 06:43:03 +02:00
bors
f693d339f1 Auto merge of #61827 - golddranks:lldb_fix, r=nikomatsakis
Fix rust-lldb wrapper scripts.

Currently the `rust-lldb` wrapper provided by Rust project is broken. The error messages it produces on launch are as follows:
```
warning: ignoring unknown option: --one-line-before-file=command script import "/Users/kon/.rustup/toolchains/nightly-2019-05-02-x86_64-apple-darwin/lib/rustlib/etc/lldb_rust_formatters.py"
warning: ignoring unknown option: --one-line-before-file=type summary add --no-value --python-function lldb_rust_formatters.print_val -x ".*" --category Rust
warning: ignoring unknown option: --one-line-before-file=type category enable Rust
(lldb) target create "target/debug/nagare"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/kon/.rustup/toolchains/nightly-2019-05-02-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/python2.7/site-packages/lldb/__init__.py", line 1481, in <module>
    class SBAddress(object):
  File "/Users/kon/.rustup/toolchains/nightly-2019-05-02-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/python2.7/site-packages/lldb/__init__.py", line 1647, in SBAddress
    __swig_getmethods__["module"] = GetModule
NameError: name '__swig_getmethods__' is not defined
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
...etc.
```

The errors stem from two regressions: one caused by an LLVM upgrade and one caused by unintended upgrade to SWIG 4.0 (SWIG is a wrapper generator that is used to generate Python bindings for LLVM and LLDB.)

(Edit: found the exact dates) The SWIG breakage happened because of a Homebrew version upgrade on `nightly-2019-05-01-x86_64-apple-darwin` and the LLVM breakage happened on `nightly-2019-01-27-x86_64-apple-darwin` (likely to have been caused by https://github.com/rust-lang/rust/pull/57675 ).

The fix is to update the LLVM parameter syntax and to "downgrade" to SWIG 3.0.x. SWIG 3.0.x is not going to be supported by Homebrew forever, but should be good for now, until LLDB upgrades to  support SWIG 4.0.0. Here's some more info about Homebrew support: https://github.com/Homebrew/homebrew-core/pull/39929 & https://github.com/Homebrew/homebrew-core/pull/40882 I'm going to send a bug & fix to LLDB about SWIG 4.0.0 to get the situation fixed in the future.

It would be good to also backport this to beta, since it's such a small change, and will fix an obvious regression.
2019-06-20 17:57:04 +00:00
Alex Crichton
831ddf700d ci: Add a script for generating CPU usage graphs
This commit checks in a script which generates CPU usage graphs over
time, expanding on the previous comment that was include in the
collection file.
2019-06-18 09:51:39 -07:00
Pyry Kontio
d6e410b320 Fix rust-lldb wrapper scripts. 2019-06-16 01:51:32 +09:00
MaulingMonkey
7c55b48d31 Fix .natvis visualizers.
Updated to handle these changes:
  - `core::ptr::*` lost their `__0` elements and are just plain pointers
  - `core::ptr::*` probably shouldn't dereference in `DisplayString` s
  - `VecDeque` and `Vec` use `core::ptr::*` s
  - `VecDeque` and `LinkedList` moved modules again.

Retested - still working fine, left alone:
  - `String`, `&str`, `Option`
2019-05-09 16:15:43 -07:00
Andy Russell
9e5def9616
rust-lldb: fix crash when printing empty string 2019-03-06 12:28:38 -05:00
kennytm
4739cd8fea
Rollup merge of #58489 - xfix:fix-keyword-tests-runtime-error, r=alexcrichton
Fix runtime error in generate-keyword-tests

The script was made unusable after removing license headers.
2019-02-17 14:52:20 +08:00
Konrad Borowski
14001e8a7b Fix runtime error in generate-keyword-tests
The script was made unusable after removing license headers.
2019-02-15 14:48:21 +01:00
Konrad Borowski
df420aa783 Remove initial newline from automatically generated span tests
This change was accidentally introduced while removing license headers.
2019-02-08 09:50:54 +01:00
Konrad Borowski
0d28a24c94 Remove code for updating copyright years in generate-deriving-span-tests
It's no longer necessary, as there is no license header anymore.
2019-02-08 09:50:54 +01:00
Ralf Jung
489a79247d fix gdb debug printing 2019-01-28 17:33:29 +01:00
bors
96909179d9 Auto merge of #57647 - cuviper:gdb-version, r=tromey
[rust-gdb] relax the GDB version regex

The pretty-printer script is checking `gdb.VERSION` to see if it's at
least 8.1 for some features. With `re.match`, it will only find the
version at the beginning of that string, but in Fedora the string is
something like "Fedora 8.2-5.fc29". Using `re.search` instead will find
the first location that matches anywhere, so it will find my 8.2.
2019-01-22 16:14:42 +00:00
Josh Stone
9430423cab [rust-gdb] relax the GDB version regex
The pretty-printer script is checking `gdb.VERSION` to see if it's at
least 8.1 for some features. With `re.match`, it will only find the
version at the beginning of that string, but in Fedora the string is
something like "Fedora 8.2-5.fc29". Using `re.search` instead will find
the first location that matches anywhere, so it will find my 8.2.
2019-01-15 15:14:17 -08:00
Alex Crichton
7616daabc7 rustc: Remove platform intrinsics crate
This was originally attempted in #57048 but it was realized that we
could fully remove the crate via the `"unadjusted"` ABI on intrinsics.
This means that all intrinsics in stdsimd are implemented directly
against LLVM rather than using the abstraction layer provided here. That
ends up meaning that this crate is no longer used at all.

This crate developed long ago to implement the SIMD intrinsics, but we
didn't end up using it in the long run. In that case let's remove it!
2019-01-14 09:54:23 -08:00
Josh Stone
d9ddc39052 lldb_batchmode.py: try import _thread for Python 3 2019-01-08 13:19:50 -08:00
Pietro Albini
14fb35fa4f
Rollup merge of #57358 - euclio:docck-unicode, r=QuietMisdreavus
use utf-8 throughout htmldocck

This commit improves compatibility with Python 3, which already uses
Unicode throughout.

It also fixes a subtle incompatibility stemming from the use of
`entitydefs`, which contains replacement text _encoded in latin-1_ for
HTML entities. When using Python 3, this would cause `0xa0` to be
incorrectly added to the element tree.

This meant that there was a rustdoc test that would pass under Python 2
but fail under Python 3, due to an incorrect regex match against the
non-breaking space character. This commit triggers that failure in both
versions, and also fixes it.
2019-01-07 16:25:36 +01:00
Vadim Petrochenkov
1f64f60d5c tests: Do not use -Z parse-only, continue compilation to test recovery 2019-01-06 22:20:46 +03:00
Andy Russell
6fefcee73a
use utf-8 throughout htmldocck
This commit improves compatibility with Python 3, which already uses
Unicode throughout.

It also fixes a subtle incompatibility stemming from the use of
`entitydefs`, which contains replacement text _encoded in latin-1_ for
HTML entities. When using Python 3, this would cause `0xa0` to be
incorrectly added to the element tree.

This meant that there was a rustdoc test that would pass under Python 2
but fail under Python 3, due to an incorrect regex match against the
non-breaking space character. This commit triggers that failure in both
versions, and also fixes it.
2019-01-06 01:27:33 -05:00
Simon Sapin
7a09115280 Remove the private generic NonZero<T> wrapper type.
Instead, use `#[rustc_layout_scalar_valid_range_start(1)]` directly
on relevant libcore types.
2018-12-26 20:54:10 +01:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Tom Tromey
4007adfb6b Disable btree pretty-printers on older gdbs
gdb versions before 8.1 have a bug that prevents the BTreeSet and
BTreeMap pretty-printers from working.  This patch disables the test
on those versions, and also disables the pretty-printers there as
well.

Closes #56730
2018-12-12 15:18:08 -07:00
Pietro Albini
ed6c7b751d
Rollup merge of #56144 - tromey:Bug-55771-btreemap, r=alexcrichton
Fix BTreeSet and BTreeMap gdb pretty-printers

The BTreeSet and BTreeMap gdb pretty-printers did not take the node
structure into account, and consequently only worked for shallow sets.
This fixes the problem by iterating over child nodes when needed.

This patch avoids the current approach of implementing some of the
value manipulations in debugger-indepdendent code.  This was done for
convenience: a type lookup was needed for the first time, and there
currently are no lldb formatters for these types.

Closes #55771
2018-11-25 17:05:04 +01:00
kennytm
91bceb8fc2
Rollup merge of #55767 - tromey:disable-some-pretty-printers, r=alexcrichton
Disable some pretty-printers when gdb is rust-enabled

A rust-enabled gdb already knows how to display string slices,
structs, tuples, and enums (and after #54004, the pretty-printers
can't handle enums at all).  This patch disables these pretty-printers
when gdb is rust-enabled.

The "gdb-pretty-struct-and-enums-pre-gdb-7-7.rs" test is renamed,
because it does not seem to depend on any behavior of that version of
gdb, and because gdb 7.7 is 4 years old now.
2018-11-24 01:31:47 +08:00
Guillaume Gomez
fa3941cb99
Rollup merge of #55961 - tromey:Bug-55944-vecdeque, r=nikomatsakis
Fix VecDeque pretty-printer

This fixes the VecDeque pretty-printer to handle cases where
head < tail.
Closes #55944
2018-11-22 10:37:48 +01:00
Tom Tromey
d4ee1c93ff Fix BTreeSet and BTreeMap gdb pretty-printers
The BTreeSet and BTreeMap gdb pretty-printers did not take the node
structure into account, and consequently only worked for shallow sets.
This fixes the problem by iterating over child nodes when needed.

This patch avoids the current approach of implementing some of the
value manipulations in debugger-indepdendent code.  This was done for
convenience: a type lookup was needed for the first time, and there
currently are no lldb formatters for these types.

Closes #55771
2018-11-21 14:07:22 -07:00
Tom Tromey
30178b422a Disable some pretty-printers when gdb is rust-enabled
A rust-enabled gdb already knows how to display string slices,
structs, tuples, and enums (and after #54004, the pretty-printers
can't handle enums at all).  This patch disables these pretty-printers
when gdb is rust-enabled.

The "gdb-pretty-struct-and-enums-pre-gdb-7-7.rs" test is renamed,
because it does not seem to depend on any behavior of that version of
gdb, and because gdb 7.7 is 4 years old now.
2018-11-19 08:08:46 -07:00
Tom Tromey
a9a48ed3da Fix VecDeque pretty-printer
This fixes the VecDeque pretty-printer to handle cases where
head < tail.
Closes #55944
2018-11-14 16:22:14 -07:00
Bruce Mitchener
a62af858e0 Fix typos. 2018-11-11 20:52:36 +07:00
kennytm
0156dd2589
Rollup merge of #55441 - xfix:patch-12, r=aturon
Remove unused re import in gdb_rust_pretty_printing
2018-11-07 18:01:47 +08:00