about summary refs log tree commit diff
path: root/src/etc
AgeCommit message (Collapse)AuthorLines
2017-08-31Add support for Vector Multiply Add Saturated on PowerPCLuca Barbato-0/+7
2017-08-26Allow htmldocck to run using Python 3.kennytm-13/+20
2017-08-16Add support for Vector Unpack High and Low on PowerPCLuca Barbato-0/+14
2017-08-16Add support for Vector Pack Pixel on PowerPCLuca Barbato-0/+7
The llvm intrinsic uses signed integers.
2017-08-16Add support for Vector Pack Saturated Unsigned on PowerPCLuca Barbato-0/+7
2017-08-16Add support for Vector Pack Saturated on PowerPCLuca Barbato-0/+7
2017-08-07Add support for Vector Average on PowerPCLuca Barbato-0/+7
2017-08-07Add support for Vector Multiply Odd on PowerPCLuca Barbato-0/+7
2017-08-07Add support for Vector Multiply Even on PowerPCLuca Barbato-0/+7
2017-08-07Narrow or widen the vector element without changing the vector sizeLuca Barbato-1/+9
2017-08-06Add support for Vector Add Carryout on PowerPCLuca Barbato-0/+7
2017-08-06Add support for Vector Add Saturated on PowerPCLuca Barbato-0/+7
2017-08-04Add support for Vector Subtract Carryout on PowerPCLuca Barbato-0/+7
2017-08-04Add support for Vector Subtract Saturated on PowerPCLuca Barbato-0/+7
2017-07-29Auto merge of #43492 - lu-zero:master, r=alexcrichtonbors-2/+58
More Altivec Intrinsics
2017-07-28Auto merge of #43221 - MaulingMonkey:natvis-improvements, r=michaelwoeristerbors-2/+26
Embed MSVC .natvis files into .pdbs and mangle debuginfo for &str, *T, and [T]. No idea if these changes are reasonable - please feel free to suggest changes/rewrites. And these are some of my first real commits to any rust codebase - *don't* be gentle, and nitpick away, I need to learn! ;) ### Overview Embedding `.natvis` files into `.pdb`s allows MSVC (and potentially other debuggers) to automatically pick up the visualizers without having to do any additional configuration (other than to perhaps add the relevant .pdb paths to symbol search paths.) The native debug engine for MSVC parses the type names, making various C++ish assumptions about what they mean and adding various limitations to valid type names. `&str` cannot be matched against a visualizer, but if we emit `str&` instead, it'll be recognized as a reference to a `str`, solving the problem. `[T]` is similarly problematic, but emitting `slice<T>` instead works fine as it looks like a template. I've been unable to get e.g. `slice<u32>&` to match visualizers in VS2015u3, so I've gone with `str*` and `slice<u32>*` instead. ### Possible Issues * I'm not sure if `slice<T>` is a great mangling for `[T]` or if I should worry about name collisions. * I'm not sure if `linker.rs` is the right place to be enumerating natvis files. * I'm not sure if these type name mangling changes should actually be MSVC specific. I recall seeing gdb visualizer tests that might be broken if made more general? I'm hesitant to mess with them without a gdb install. But perhaps I'm just wracking up technical debt. Should I try `pacman -S mingw-w64-x86_64-gdb` and to make things consistent? * I haven't touched `const` / `mut` yet, and I'm worried MSVC might trip up on `mut` or their placement. * I may like terse oneliners too much. * I don't know if there's broader implications for messing with debug type names here. * I may have been mistaken about bellow test failures being ignorable / unrelated to this changelist. ### Test Failures on `x86_64-pc-windows-gnu` ``` ---- [debuginfo-gdb] debuginfo-gdb\associated-types.rs stdout ---- thread '[debuginfo-gdb] debuginfo-gdb\associated-types.rs' panicked at 'gdb not available but debuginfo gdb debuginfo test requested', src\tools\compiletest\src\runtest.rs:48:16 note: Run with `RUST_BACKTRACE=1` for a backtrace. [...identical panic causes omitted...] ---- [debuginfo-gdb] debuginfo-gdb\vec.rs stdout ---- thread '[debuginfo-gdb] debuginfo-gdb\vec.rs' panicked at 'gdb not available but debuginfo gdb debuginfo test requested', src\tools\compiletest\src\runtest.rs:48:16 ``` ### Relevant Issues * https://github.com/rust-lang/rust/issues/40460 Metaissue for Visual Studio debugging Rust * https://github.com/rust-lang/rust/issues/36503 Investigate natvis for improved msvc debugging * https://github.com/PistonDevelopers/VisualRust/issues/160 Debug visualization of Rust data structures ### Pretty Pictures ![Collapsed Watch Window](https://user-images.githubusercontent.com/75894/28180998-e44c7516-67bb-11e7-8b48-d4f9605973ae.png) ![Expanded Watch Window](https://user-images.githubusercontent.com/75894/28181000-e8da252e-67bb-11e7-96b8-d613310c04dc.png)
2017-07-27Add support for Vector Minimum on PowerPCLuca Barbato-0/+7
2017-07-27Add support for Vector Maximum on PowerPCLuca Barbato-0/+7
2017-07-26Add Vector Compare Greater-ThanLuca Barbato-0/+16
2017-07-26Add Vector Compare EqualLuca Barbato-2/+13
2017-07-26Add Vector Compare Bounds Floating-PointLuca Barbato-1/+9
2017-07-25Add mradds to the powerpc intrinsicsLuca Barbato-0/+7
2017-07-24Add support for PowerPC Altivec/VSX intrinsicsLuca Barbato-0/+21
2017-07-21*.natvis: Use s8 postfixes to correctly interpret rust strings as UTF-8.MaulingMonkey-4/+4
2017-07-13Modify type names on MSVC to make strings and slices .natvis compatible.MaulingMonkey-0/+24
2017-06-13Merge crate `collections` into `alloc`Murarth-8/+8
2017-06-09Auto merge of #42278 - gentoo90:gdb-pretty-printers, r=michaelwoeristerbors-5/+48
Fix GDB pretty-printer for tuples and pointers Names of children should not be the same, because GDB uses them to distinguish the children. |Before|After| |---|---| |![tuples_before](https://cloud.githubusercontent.com/assets/1297574/26527639/5d6cf10e-43a0-11e7-9498-abfcddb08055.png)|![tuples_after](https://cloud.githubusercontent.com/assets/1297574/26527655/9699233a-43a0-11e7-83c6-f58f713b51a0.png)| `main.rs` ```rust enum Test { Zero, One(i32), Two(i32, String), Three(i32, String, Vec<String>), } fn main() { let tuple = (1, 2, "Asdfgh"); let zero = Test::Zero; let one = Test::One(10); let two = Test::Two(42, "Qwerty".to_owned()); let three = Test::Three(9000, "Zxcvbn".to_owned(), vec!["lorem".to_owned(), "ipsum".to_owned(), "dolor".to_owned()]); println!(""); // breakpoint here } ``` `launch.json` ```json { "version": "0.2.0", "configurations": [ { "type": "gdb", "request": "launch", "gdbpath": "rust-gdb", "name": "Launch Program", "valuesFormatting": "prettyPrinters", //this requires plugin Native Debug >= 0.20.0 "target": "./target/debug/test_pretty_printers", "cwd": "${workspaceRoot}" } ] } ```
2017-06-09Add compat_str() which works with unicode in both Python 2 and 3gentoo90-1/+6
GDB can be built with Python 2 or with Python 3
2017-06-07Change `llvm.neon.*` to `llvm.arm.neon.*` in the mapping for platform intrinsicsHenri Sivonen-1/+1
This avoids linker errors when using platform intrinsics on 32-bit ARM with NEON. Fixes rust-lang-nursery/simd#10.
2017-06-02Add separate GDB pretty-printer for empty structsgentoo90-2/+12
Use a class without children() method for printing empty structs. Presence of this method makes GDB's variable objects interface act like if the struct had children.
2017-06-02Add GDB pretty-printer for OsStringgentoo90-0/+27
2017-05-30Fix 'invalid literal for int()' exception with unicode in pretty-printersgentoo90-1/+1
str() can't handle unicode strings
2017-05-30Fix 'invalid literal for int()' exception in pretty-printersgentoo90-1/+2
Some pointers values include additional info, so they can't be parsed with int().
2017-05-29Fix formatting issues in Distribution.xmlEdward Yang-33/+33
2017-05-29Add RLS to .pkg installerEdward Yang-0/+11
2017-05-29Add RLS to .exe and .msi installersEdward Yang-0/+13
2017-05-28Fix GDB pretty-printer for tuplesgentoo90-2/+2
Names of children should not be the same, because GDB uses them to distinguish the children.
2017-05-14Rewrite make-win-dist.py in RustWesley Wiser-126/+0
Fixes #41568
2017-05-07Add support for Hexagon v60 HVX intrinsicsMichael Wu-0/+1326
2017-05-04Move unicode Python script into libstd_unicode crate.Corey Farwell-591/+0
The only place this Python script is used is inside the libstd_unicode crate, so lets move it there.
2017-04-28Auto merge of #41575 - alexcrichton:android-qemu-server, r=TimNNbors-35/+0
travis: Parallelize tests on Android Currently our slowest test suite on android, run-pass, takes over 5 times longer than the x86_64 component (~400 -> ~2200s). Typically QEMU emulation does indeed add overhead, but not 5x for this kind of workload. One of the slowest parts of the Android process is that *compilation* happens serially. Tests themselves need to run single-threaded on the emulator (due to how the test harness works) and this forces the compiles themselves to be single threaded. Now Travis gives us more than one core per machine, so it'd be much better if we could take advantage of them! The emulator itself is still fundamentally single-threaded, but we should see a nice speedup by sending binaries for it to run much more quickly. It turns out that we've already got all the toos to do this in-tree. The qemu-test-{server,client} that are in use for the ARM Linux testing are a perfect match for the Android emulator. This commit migrates the custom adb management code in compiletest/rustbuild to the same qemu-test-{server,client} implementation that ARM Linux uses. This allows us to lift the parallelism restriction on the compiletest test suites, namely run-pass. Consequently although we'll still basically run the tests themselves in single threaded mode we'll be able to compile all of them in parallel, keeping the pipeline much more full hopefully and using more cores for the work at hand. Additionally the architecture here should be a bit speedier as it should have less overhead than adb which is a whole new process on both the host and the emulator! Locally on an 8 core machine I've seen the run-pass test suite speed up from taking nearly an hour to only taking 5 minutes. I don't think we'll see quite a drastic speedup on Travis but I'm hoping this change can place the Android tests well below 2 hours instead of just above 2 hours. Because the client/server here are now repurposed for more than just QEMU, they've been renamed to `remote-test-{server,client}`. Note that this PR does not currently modify how debuginfo tests are executed on Android. While parallelizable it wouldn't be quite as easy, so that's left to another day. Thankfull that test suite is much smaller than the run-pass test suite.
2017-04-27travis: Parallelize tests on AndroidAlex Crichton-35/+0
Currently our slowest test suite on android, run-pass, takes over 5 times longer than the x86_64 component (~400 -> ~2200s). Typically QEMU emulation does indeed add overhead, but not 5x for this kind of workload. One of the slowest parts of the Android process is that *compilation* happens serially. Tests themselves need to run single-threaded on the emulator (due to how the test harness works) and this forces the compiles themselves to be single threaded. Now Travis gives us more than one core per machine, so it'd be much better if we could take advantage of them! The emulator itself is still fundamentally single-threaded, but we should see a nice speedup by sending binaries for it to run much more quickly. It turns out that we've already got all the tools to do this in-tree. The qemu-test-{server,client} that are in use for the ARM Linux testing are a perfect match for the Android emulator. This commit migrates the custom adb management code in compiletest/rustbuild to the same qemu-test-{server,client} implementation that ARM Linux uses. This allows us to lift the parallelism restriction on the compiletest test suites, namely run-pass. Consequently although we'll still basically run the tests themselves in single threaded mode we'll be able to compile all of them in parallel, keeping the pipeline much more full and using more cores for the work at hand. Additionally the architecture here should be a bit speedier as it should have less overhead than adb which is a whole new process on both the host and the emulator! Locally on an 8 core machine I've seen the run-pass test suite speed up from taking nearly an hour to only taking 6 minutes. I don't think we'll see quite a drastic speedup on Travis but I'm hoping this change can place the Android tests well below 2 hours instead of just above 2 hours. Because the client/server here are now repurposed for more than just QEMU, they've been renamed to `remote-test-{server,client}`. Note that this PR does not currently modify how debuginfo tests are executed on Android. While parallelizable it wouldn't be quite as easy, so that's left to another day. Thankfully that test suite is much smaller than the run-pass test suite. As a final fix I discovered that the ARM and Android test suites were actually running all library unit tests (e.g. stdtest, coretest, etc) twice. I've corrected that to only run tests once which should also give a nice boost in overall cycle time here.
2017-04-26windows: Copy libwinpthread-1.dll into libdir binAlex Crichton-1/+2
Recently we switched from the win32 MinGW toolchain to the pthreads-based toolchain. We ship `gcc.exe` from this toolchain with the `rust-mingw` package in the standard distribution but the pthreads version of `gcc.exe` depends on `libwinpthread-1.dll`. While we're shipping this DLL for the compiler to depend on we're not shipping it for gcc. As a workaround just copy the dll to gcc.exe location and don't attempt to share for now. cc https://github.com/rust-lang/rust/issues/31840#issuecomment-297478538
2017-04-24Adds rust-windbg.cmd scriptAndrew Gaspar-0/+18
2017-04-20Rename environment variable `GDB_CMD` to `RUST_GDB` to prevent ambiguityNicolas Bigaouette-3/+3
2017-04-18Use an (over-writable) environment variable for the `gdb` commandNicolas Bigaouette-1/+4
Instead of hard-coding the command to run, using the environment variable `GDB_CMD` (that defaults to `gdb`) allows using a different debugger than the default `gdb` executable. This gives the possibility to use `cgdb` as the debugger, which provides a nicer user interface. Note that one has to use `GDB_CMD="cgdb --"` to use cgdb (note the trailing `--`) to let cgdb pass the proper arguments to `gdb`.
2017-04-17Remove non-breaking spacesDiggory Blake-4/+4
2017-04-06Auto merge of #40805 - vadimcn:msys-mingw, r=alexcrichtonbors-1/+2
[Windows] Enable building rustc with "pthreads" flavor of mingw. Tested on mingw-w64 packaged with msys2. r? @alexcrichton cc #40123
2017-04-05Reduce a table used for `Debug` impl of `str`.Kang Seonghoon-34/+98
This commit shrinks the size of the aforementioned table from 2,102 bytes to 1,197 bytes. This is achieved by an observation that most u16 entries are common in its upper byte. Specifically: - SINGLETONS now uses two tables, one for (upper byte, lower count) and another for a series of lower bytes. For each upper byte given number of lower bytes are read and compared. - NORMAL now uses a variable length format for the count of "true" codepoints and "false" codepoints (one byte with MSB unset, or two big-endian bytes with the first MSB set). The code size and relative performance roughly remains same as this commit tries to optimize for both. The new table and algorithm has been verified for the equivalence to older ones.
2017-03-30Include libpthread into mingw package.Vadim Chugunov-1/+2