about summary refs log tree commit diff
path: root/src/etc
AgeCommit message (Collapse)AuthorLines
2016-01-31Rename sunos to solarisNikita Baksalyar-1/+1
2016-01-31Add Illumos supportNikita Baksalyar-1/+2
2016-01-29Add check for unused error codesggomez-3/+50
2016-01-21etc: Remove old num/libc generation codeAlex Crichton-369/+0
2016-01-21etc: Remove the mingw-fix-include directoryAlex Crichton-69/+0
This isn't used anywhere
2016-01-21etc: Remove old mklldef.py scriptAlex Crichton-25/+0
The compiler has since gained better support for this, so the script is no longer necessary
2016-01-16libsyntax: accept only whitespace with the PATTERN_WHITE_SPACE propertyKevin Butler-2/+2
This aligns with unicode recommendations and should be stable for all future unicode releases. See http://unicode.org/reports/tr31/#R3. This renames `libsyntax::lexer::is_whitespace` to `is_pattern_whitespace` so potentially breaks users of libsyntax.
2016-01-13Auto merge of #30639 - rkruppe:dec2flt-fastpath-tables, r=alexcrichtonbors-6/+29
Add tables of small powers of ten used in the fast path. The tables are redundant: We could also use the big, more accurate table and round the value to the correct type (in fact we did just that before this commit). However, the rounding is extra work and slows down the fast path. Because only very small exponents enter the fast path, the table and thus the space overhead is negligible. Speed-wise, this is a clear win on a [benchmark] comparing the fast path to a naive, hand-optimized, inaccurate algorithm. Specifically, this change narrows the gap from a roughly 5x difference to a roughly 3.4x difference. [benchmark]: https://gist.github.com/Veedrac/dbb0c07994bc7882098e
2016-01-12Speed up dec2flt fast path with additional tables.Robin Kruppe-6/+29
Add tables of small powers of ten used in the fast path. The tables are redundant: We could also use the big, more accurate table and round the value to the correct type (in fact we did just that before this commit). However, the rounding is extra work and slows down the fast path. Because only very small exponents enter the fast path, the table and thus the space overhead is negligible. Speed-wise, this is a clear win on a [benchmark] comparing the fast path to a naive, hand-optimized, inaccurate algorithm. Specifically, this change narrows the gap from a roughly 5x difference to a roughly 3.4x difference. [benchmark]: https://gist.github.com/Veedrac/dbb0c07994bc7882098e
2016-01-04Improve the range comparisonAndrea Canciani-3/+3
As mentioned in #29734, the range comparison closure can be improved. The LLVM IR and the assembly from the new version are much simpler and unfortunately we cannot rely on the compiler to optimise this much, as it would need to know that `lo <= hi`. Besides from simpler code, there might also be a performance advantage, although it is unlikely to appear on benchmarks, as we are doing a binary search, which should always involve few comparisons. The code is available on the playpen for ease of comparison: http://is.gd/4raMmH
2016-01-04Reuse standard methodsAndrea Canciani-10/+1
Do not hand-code `Result::ok` or `cmp` in tables.rs.
2016-01-04Improve formatting of tables.rsAndrea Canciani-3/+3
Make unicode.py generate a tables.rs which is more conformant to usual Rust formatting (as per `rustfmt`).
2016-01-04Cleanup unicode.pyAndrea Canciani-115/+0
The methods related to char width are dead code since 464cdff102993ff1900eebbf65209e0a3c0be0d5; remove them.
2015-12-25update valgrind suppressionsTamir Duberstein-55/+25
2015-12-13Better support for `--llvm-root`.Richard Diamond-4/+20
This handles cases when the LLVM used isn't configured will the 'usual' targets. Also, cases where LLVM is shared are also handled (ie with `LD_LIBRARY_PATH` etc).
2015-12-10Improve `htmldocck.py` error messagesmitaa-54/+86
2015-12-05std: Stabilize APIs for the 1.6 releaseAlex Crichton-3/+0
This commit is the standard API stabilization commit for the 1.6 release cycle. The list of issues and APIs below have all been through their cycle-long FCP and the libs team decisions are listed below Stabilized APIs * `Read::read_exact` * `ErrorKind::UnexpectedEof` (renamed from `UnexpectedEOF`) * libcore -- this was a bit of a nuanced stabilization, the crate itself is now marked as `#[stable]` and the methods appearing via traits for primitives like `char` and `str` are now also marked as stable. Note that the extension traits themeselves are marked as unstable as they're imported via the prelude. The `try!` macro was also moved from the standard library into libcore to have the same interface. Otherwise the functions all have copied stability from the standard library now. * The `#![no_std]` attribute * `fs::DirBuilder` * `fs::DirBuilder::new` * `fs::DirBuilder::recursive` * `fs::DirBuilder::create` * `os::unix::fs::DirBuilderExt` * `os::unix::fs::DirBuilderExt::mode` * `vec::Drain` * `vec::Vec::drain` * `string::Drain` * `string::String::drain` * `vec_deque::Drain` * `vec_deque::VecDeque::drain` * `collections::hash_map::Drain` * `collections::hash_map::HashMap::drain` * `collections::hash_set::Drain` * `collections::hash_set::HashSet::drain` * `collections::binary_heap::Drain` * `collections::binary_heap::BinaryHeap::drain` * `Vec::extend_from_slice` (renamed from `push_all`) * `Mutex::get_mut` * `Mutex::into_inner` * `RwLock::get_mut` * `RwLock::into_inner` * `Iterator::min_by_key` (renamed from `min_by`) * `Iterator::max_by_key` (renamed from `max_by`) Deprecated APIs * `ErrorKind::UnexpectedEOF` (renamed to `UnexpectedEof`) * `OsString::from_bytes` * `OsStr::to_cstring` * `OsStr::to_bytes` * `fs::walk_dir` and `fs::WalkDir` * `path::Components::peek` * `slice::bytes::MutableByteVector` * `slice::bytes::copy_memory` * `Vec::push_all` (renamed to `extend_from_slice`) * `Duration::span` * `IpAddr` * `SocketAddr::ip` * `Read::tee` * `io::Tee` * `Write::broadcast` * `io::Broadcast` * `Iterator::min_by` (renamed to `min_by_key`) * `Iterator::max_by` (renamed to `max_by_key`) * `net::lookup_addr` New APIs (still unstable) * `<[T]>::sort_by_key` (added to mirror `min_by_key`) Closes #27585 Closes #27704 Closes #27707 Closes #27710 Closes #27711 Closes #27727 Closes #27740 Closes #27744 Closes #27799 Closes #27801 cc #27801 (doesn't close as `Chars` is still unstable) Closes #28968
2015-12-02Remove AUTHORS.txt and add-authors.shBrian Anderson-37/+0
Keeping this file up to date requires hours of work every release, even with the script. It is a fool's errand and we shall not do it any longer.
2015-11-20Rename #[deprecated] to #[rustc_deprecated]Vadim Petrochenkov-1/+1
2015-11-14AUTHORS and .mailmap cleanuparcnmx-2/+2
2015-11-10Auto merge of #29699 - tamird:valgrind-supp, r=alexcrichtonbors-475/+140
Quite a bit of cruft in the valgrind suppressions. I started from a clean slate and found a few unique failures; this commit also moves the tests "fixed" by these suppressions into run-pass-valgrind.
2015-11-09std: Migrate to the new libcAlex Crichton-1/+2
* Delete `sys::unix::{c, sync}` as these are now all folded into libc itself * Update all references to use `libc` as a result. * Update all references to the new flat namespace. * Moves all windows bindings into sys::c
2015-11-08valgrind: update suppressions and move interesting testsTamir Duberstein-475/+140
2015-11-07Make sure rsbegin.o and rsend.o get packaged with target lib artifacts.Vadim Chugunov-4/+0
Also, unified libc startup objects finding logic with that of the `-musl` target, since conceptually they were doing the same thing.
2015-10-31Windows: Move target libraries to $rustroot/lib/rustlib/... - for symmetry ↵Vadim Chugunov-3/+7
with all other platforms.
2015-10-28Rollup merge of #29437 - brson:authors, r=alexcrichtonSteve Klabnik-2/+7
2015-10-28Tweak the add-authors.sh scriptBrian Anderson-2/+7
2015-10-27mk: Re-add libgcc_s_seh-1.dll to windows distAlex Crichton-0/+2
Although the compiler itself does not depend on this DLL the `libstdc++-6.dll` that we're shipping does, so we still need to include it.
2015-10-26rustfmt librustc_unicodeCorentin Henry-6/+11
2015-10-25mk: Package libstdc++-6.dll on x86_64 MinGWAlex Crichton-2/+0
We don't need the support libgcc SEH library, but we do need the C++ standard library for running the compiler itself. cc #29208
2015-10-20Auto merge of #29159 - arcnmx:travis-trusty, r=alexcrichtonbors-12/+0
Moves back away from docker but still uses the GCE infrastructure with a system-installed LLVM. See http://docs.travis-ci.com/user/trusty-ci-environment/
2015-10-19Use Travis trusty infrastructurearcnmx-12/+0
2015-10-18Remove #[derive(Show)]Vadim Petrochenkov-1/+1
2015-10-08typos: fix a grabbag of typos all over the placeCristi Cobzarenco-1/+1
2015-09-29Tweak Travis to use GCEAlex Crichton-0/+12
Travis CI has new infrastructure using the Google Compute Engine which has both faster CPUs and more memory, and we've been encouraged to switch as it should help our build times! The only downside currently, however, is that IPv6 is disabled, causing a number of standard library tests to fail. Consequently this commit tweaks our travis config in a few ways: * ccache is disabled as it's not working on GCE just yet * Docker is used to run tests inside which reportedly will get IPv6 working * A system LLVM installation is used instead of building LLVM itself. This is primarily done to reduce build times, but we want automation for this sort of behavior anyway and we can extend this in the future with building from source as well if needed. * gcc-specific logic is removed as the docker image for Ubuntu gives us a recent-enough gcc by default.
2015-09-18add support for non-standard name of stdc++ librarySébastien Marie-2/+3
it makes rustc compatible with gcc installation that are using `--program-transform-name' configure flag (on OpenBSD for example). - detects at configure the name of stdc++ library on the system - use the detected name in llvm makefile (with enable-static-stdcpp), and pass it to mklldeps.py - generate mklldeps.rs using this detected name note that CFG_STDCPP_NAME is about stdc++ name, not about libc++. If using libc++, the default name will be `stdc++', but it won't be used when linking.
2015-09-17rmake: Get all tests passing on MSVCAlex Crichton-2/+10
2015-09-12Add a comment to explain the `#[inline(never)]` annotationAndrea Canciani-0/+2
and regenerate the platform intrinsics source files.
2015-09-12Fix generator.py to avoid pathological inliningAndrea Canciani-0/+1
Commit 9104a902c052c1ad7fd5c1245cb1e03f88aa2f70 fixed the generated files, but that change would be lost (or require additional manual intervention) if they are re-generated of if new architectures are added. cc #28273
2015-09-08Auto merge of #28246 - huonw:lang-tracking-issues, r=alexcrichtonbors-5/+9
This is similar to the libs version, which allow an `issue` field in the `#[unstable]` attribute. cc #28244
2015-09-08Allow tracking issues for lang features.Huon Wilson-5/+9
This is similar to the libs version, which allow an `issue` field in the `#[unstable]` attribute. cc #28244
2015-09-04Add some fancier AArch64 load/store instructions.Huon Wilson-0/+42
2015-09-04Support return aggregates in platform intrinsics.Huon Wilson-16/+67
This also involved adding `[TYPE;N]` syntax and aggregate indexing support to the generator script: it's the only way to be able to have a parameterised intrinsic that returns an aggregate, since one can't refer to previous elements of the current aggregate (and that was harder to implement).
2015-09-04Add various pointer & void-using x86 intrinsics.Huon Wilson-3/+143
2015-09-04Support bitcasts in platform intrinsic generator.Huon Wilson-34/+105
2015-09-04Support void in platform intrinsic generator.Huon Wilson-4/+29
2015-09-04Support non-return value references in platform intrinsic generator.Huon Wilson-74/+79
2015-09-04Add support for pointers to generator.py.Huon Wilson-9/+88
2015-08-31Fix some typos in SSE-AVX intrinsics.Huon Wilson-10/+10
I believe everything that doesn't take a constant integer up to SSE4.2 should now be correct (I don't have any reason to believe that those that do take constant integers are wrong; they're just more complicated and I just haven't tested them in detail).
2015-08-29Support different scalar integer widths in Rust v. LLVM.Huon Wilson-28/+70
Some x86 C intrinsics are declared to take `int ...` (i.e. exposed in Rust as `i32`), but LLVM implements them by taking `i8` instead.