Commit Graph

18935 Commits

Author SHA1 Message Date
Huon Wilson abadece3ba std: remove the invalid NullTerminatedStr instance for &'static str.
A slice of a 'static str is still 'static, but doesn't necessarily
have the null terminator.
2013-06-13 14:12:08 +10:00
bors da510bfb4a auto merge of #7086 : huonw/rust/5048, r=graydon
Fixes #5048.

I'm sure this reduces memory usage, but I can't get cgroups to work properly to actually measure memory. (It doesn't appear to offer much speed improvement, but I'm fairly sure it's not slower.)

This is quite huge, so it'd be nice to get a resolution soon.
2013-06-12 18:10:49 -07:00
Huon Wilson 5ebffd46d5 rustc: fix test failures after rebase. 2013-06-13 10:47:33 +10:00
Huon Wilson a30ee0dee1 rustdoc: fix tests for @~str -> @str change. 2013-06-13 10:20:52 +10:00
Huon Wilson 096f6f56a8 Use @str instead of @~str in libsyntax and librustc. Fixes #5048.
This almost removes the StringRef wrapper, since all strings are
Equiv-alent now. Removes a lot of `/* bad */ copy *`'s, and converts
several things to be &'static str (the lint table and the intrinsics
table).

There are many instances of .to_managed(), unfortunately.
2013-06-13 10:20:52 +10:00
Huon Wilson 641910dc13 std: make all strings Equiv-alent to each other, generalise Path.push_many to take any type of string. 2013-06-13 10:19:34 +10:00
bors 84bed9769b auto merge of #7091 : msullivan/rust/default-methods, r=graydon
r? @nikomatsakis
2013-06-12 16:25:34 -07:00
bors 26a5c9768b auto merge of #7077 : SiegeLord/rust/new_css, r=pnkfelix
I was making documentation for my own little Rust project, and I was somewhat unhappy with how the documentation looked. While many of the issues are endemic to how rustdoc generates its output, you can get pretty far in making the documentation readable by using a better CSS style.

This commit alters the CSS style used in Rust's documentation in order to make the various sections stand out more. You can see an example of its usage in my own project's documentation: http://siegelord.github.io/RustGnuplot/#implementation-for-figureself-where-self. I showed it to some people on IRC and they suggested that I make a pull request here. I tested it on the only browser that matters, but also Chrome and Opera.
2013-06-12 15:31:39 -07:00
bors df483e82e7 auto merge of #7084 : pnkfelix/rust/fsk-visitor-refactoring, r=pnkfelix
This step 1 in my plan for issue #7081: Refactor visit.rs with a `@Visitor` trait.
2013-06-12 14:34:34 -07:00
Felix S. Klock II 009a2fdc5e Fix a test-predicated use of the visit.rs api. 2013-06-12 23:31:07 +02:00
Felix S. Klock II 58b4fe6fea Merge branch 'moz-incoming' into fsk-visitor-refactoring 2013-06-12 23:28:38 +02:00
Michael Sullivan 36e3d64c3e Fix a lot of the handling of default methods and type parameters. Closes #4099, #4102. 2013-06-12 13:50:45 -07:00
Michael Sullivan 5835158170 Drop some dead method handling code. 2013-06-12 13:50:45 -07:00
Michael Sullivan a159f856d5 Properly translate calls to default methods in a number of cases. Closes #4350. 2013-06-12 13:50:15 -07:00
bors 78cddc83a4 auto merge of #7073 : influenza/rust/iterator-doc-fixes, r=catamorphism
This commit fixes two typos and an incorrect description.
2013-06-12 12:13:53 -07:00
Felix S. Klock II 91bced8ae8 Fix linebreak and whitespace issues to placate make tidy. 2013-06-12 19:16:30 +02:00
Felix S. Klock II ecef9ad75a Visitor refactoring: Step 1, couple (Env, vt<Env>) together in a tuple. 2013-06-12 13:04:37 +02:00
bors 135ba946a2 auto merge of #7064 : luqmana/rust/issue-7062, r=sanxiyn
Fixes #7062
2013-06-12 01:19:38 -07:00
Luqman Aden aa9a992f3e libsyntax: Remove duplicate methods. 2013-06-12 02:46:38 -04:00
Luqman Aden 47772bcb73 Add tests for duplicate methods on traits/impls. 2013-06-12 02:46:38 -04:00
Luqman Aden c6f3103006 librustc: Don't allow duplicate methods on impls. 2013-06-12 02:46:38 -04:00
Luqman Aden 8fc14b6e62 librustc: Don't allow duplicate methods on a trait. 2013-06-12 02:46:38 -04:00
bors 4a52ff0786 auto merge of #7072 : thestinger/rust/ptr, r=catamorphism
I don't think this will even show up in the documentation right now.... but it should still be correct :).
2013-06-11 22:31:39 -07:00
bors cc80652e4a auto merge of #7060 : huonw/rust/more-str, r=thestinger
There are now only half-a-dozen or so functions left `std::str` that should be methods.

Highlights:
- `.substr` was removed, since most of the uses of it in the code base were actually incorrect (it had a weird mixing of a byte index and a unicode character count), adding `.slice_chars` if one wants to handle characters, and the normal `.slice` method to handle bytes.
- Code duplication between the two impls for `connect` and `concat` was removed via a new `Str` trait, that is purely designed to allow an explicit -> `&str` conversion (`.as_slice()`)
- Deconfuse the 5 different functions for converting to `[u8]` (3 of which had actually incorrect documentation: implying that they didn't have the null terminator), into 3: `as_bytes` (all strings), `as_bytes_with_null` (`&'static str`, `@str` and `~str`) and `as_bytes_with_null_consume` (`~str`). None of these allocate, unlike the old versions.

(cc @thestinger)
2013-06-11 21:37:43 -07:00
bors 7033dfcf91 auto merge of #7069 : dotdash/rust/cast_combine, r=graydon
Shaves off a percent or so from the LLVM passes for librustc.
2013-06-11 20:43:39 -07:00
Huon Wilson 9f0c85acc9 std: fix windows 2013-06-12 13:42:41 +10:00
Huon Wilson 13460de61c std: fix method renaming. 2013-06-12 13:09:02 +10:00
bors 8761b1fb16 auto merge of #7067 : brson/rust/notasktrans, r=graydon 2013-06-11 19:37:39 -07:00
Huon Wilson eecbe5556b Silence some warnings. 2013-06-12 12:21:05 +10:00
Huon Wilson 26d7b460a3 std: generalise .trim_chars to use CharEq. 2013-06-12 12:21:05 +10:00
Huon Wilson 073e82fff2 std: create Str trait for DRY. Use it on StrVector.
The Str trait collects the various strings types and provides a method
for coercing to a slice, so that functions and impls can be written for
generic types containing strings (e.g. &[~str], &[&str], ...) without
having to write one for each string type (assuming that the impl only
needs a slice).
2013-06-12 12:21:04 +10:00
Huon Wilson 3a1e13c7a0 std: convert str::escape_* to methods. 2013-06-12 12:21:04 +10:00
Huon Wilson 9e60e2e297 std: convert str::replace to a method. 2013-06-12 12:21:04 +10:00
Huon Wilson 12750c8893 std: methodise str::capacity 2013-06-12 12:21:04 +10:00
Huon Wilson 3ac00a9489 std: remove substr & str::count_*, methodise char_len, implement slice_chars.
The confusing mixture of byte index and character count meant that every
use of .substr was incorrect; replaced by slice_chars which only uses
character indices. The old behaviour of `.substr(start, n)` can be emulated
via `.slice_from(start).slice_chars(0, n)`.
2013-06-12 12:21:04 +10:00
Huon Wilson 9fff8c6eba std: add a test for HashMap::find_equiv. 2013-06-12 12:21:04 +10:00
Huon Wilson efc71a8bdb std: unify the str -> [u8] functions as 3 methods: .as_bytes() and .as_bytes_with_null[_consume]().
The first acts on &str and is not nul-terminated, the last two act on strings
that are always null terminated (&'static str, ~str and @str).
2013-06-12 12:21:04 +10:00
Huon Wilson ba4a4778cc std: convert str::{*shift,pop}* to methods. 2013-06-12 12:21:04 +10:00
Huon Wilson 8786bca7e2 std: convert str::repeat to a method. 2013-06-12 12:21:03 +10:00
Huon Wilson 3c23a0a836 std: replace str::append with a method 2013-06-12 12:21:03 +10:00
Huon Wilson 96cd61ad03 std: convert {vec,str}::to_owned to methods. 2013-06-12 12:21:03 +10:00
SiegeLord d641b0b575 Alter rust.css to make the documentation look more appealing 2013-06-11 20:43:26 -04:00
bors e06579bc09 auto merge of #7056 : alexcrichton/rust/issue-4727, r=catamorphism
Closes #4727
2013-06-11 17:22:46 -07:00
Ron Dahlgren 37489a67e5 Iterator documentation fixes
Fixes two typos and one incorrect description.
2013-06-11 16:34:03 -07:00
bors 3f900dc7d1 auto merge of #7055 : thestinger/rust/iterator, r=catamorphism
This was a lot more painful than just changing `x.each` to `x.iter().advance` . I ran into my old friend #5898 and had to add underscores to some method names as a temporary workaround.

The borrow checker also had other ideas because rvalues aren't handled very well yet so temporary variables had to be added. However, storing the temporary in a variable led to dynamic `@mut` failures, so those had to be wrapped in blocks except where the scope ends immediately.

Anyway, the ugliness will be fixed as the compiler issues are fixed and this change will amount to `for x.each |x|` becoming `for x.iter |x|` and making all the iterator adaptors available.

I dropped the run-pass tests for `old_iter` because there's not much point in fixing a module that's on the way out in the next week or so.
2013-06-11 16:19:42 -07:00
Daniel Micay fbae011ad1 fix the docstring for copy_nonoverlapping_memory 2013-06-11 19:06:01 -04:00
Daniel Micay 107e371bf0 fix the ptr::set_memory docstring 2013-06-11 17:48:44 -04:00
bors 1175e94de3 auto merge of #7033 : influenza/rust/rust-7022, r=graydon
This commit fixes #7022 - I've added an additional check to ensure that
stk is not null before dereferencing it to get it's next element,
assigning NULL if it is itself NULL.
2013-06-11 14:40:48 -07:00
bors da9172af60 auto merge of #7040 : alexcrichton/rust/issue-6511-threadsafe-llvm, r=graydon
This is a reopening of #6570, and almost fixes #6511.

Note that this doesn't actually enable building a threadsafe LLVM, because that will require an LLVM rebuild which will be bundled with the upgrades in #6713.

What this does do, however, is removes all thread-unsafe usage of LLVM from the compiler.
2013-06-11 13:46:54 -07:00
Björn Steinbrink f526434197 Codegen: Combine two PointerCasts into one
Shaves off a percent or so from the LLVM passes for librustc.
2013-06-11 22:45:13 +02:00