Tshepang Lekhonkhobe
886c501ca3
doc: reduce overlong sentence
2014-07-28 23:22:47 +02:00
bors
279a780804
auto merge of #15983 : brson/rust/fail, r=alexcrichton
...
A few refactorings to decrease text size and increase data size. I'm not sure about this tradeoff. Various stats below. cc @pcwalton
This reduces the code needed to pass arguments for `fail!()`, `fail!("{}", ...)`, and to a lesser extent `fail!("...")`. Still more work to be done on compiler-generated failures and the `fail!("...")` case.
do_fail_empty:
```
#[inline(never)]
fn do_fail_empty() {
fail!()
}
```
do_fail_empty before:
```
leaq 8(%rsp), %rdi
movabsq $13, %rsi
leaq "str\"str\"(1494)"(%rip), %rax
movq %rax, 8(%rsp)
movq $19, 16(%rsp)
callq _ZN6unwind31begin_unwind_no_time_to_explain20h57030457935ab6111SdE@PLT
```
do_fail_empty after:
```
leaq _ZN13do_fail_empty9file_line20h339df6a0541e837eIaaE(%rip), %rdi
callq _ZN6unwind31begin_unwind_no_time_to_explain20h33184cfdcce4dfd8QTdE@PLT
```
do_fail_fmt:
```
#[inline(never)]
fn do_fail_fmt() {
fail!("guh{}", "faw")
}
```
do_fail_fmt before:
```
... (snip lots of fmt stuff)
callq _ZN3fmt22Arguments$LT$$x27a$GT$3new20he09b3a3f473879c41paE
leaq 144(%rsp), %rsi
movabsq $23, %rdx
leaq "str\"str\"(1494)"(%rip), %rax
leaq 32(%rsp), %rcx
movq %rcx, 160(%rsp)
movq 160(%rsp), %rdi
movq %rax, 144(%rsp)
movq $19, 152(%rsp)
callq _ZN6unwind16begin_unwind_fmt20h3ebeb42f4d189b2buQdE@PLT
```
do_fail_fmt after:
```
... (snip lots of fmt stuff)
callq _ZN3fmt22Arguments$LT$$x27a$GT$3new20h42e5bb8d1711ee61OqaE
leaq _ZN11do_fail_fmt7run_fmt9file_line20h339df6a0541e837eFbaE(%rip), %rsi
leaq 32(%rsp), %rax
movq %rax, 144(%rsp)
movq 144(%rsp), %rdi
callq _ZN6unwind16begin_unwind_fmt20hfdcadc14d188656biRdE@PLT
```
File size increases.
file size before:
```
-rw-rw-r-- 1 brian brian 100501740 Jul 24 23:28 /home/brian/dev/rust2/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-4e7c5e5c.rlib
-rwxrwxr-x 1 brian brian 21201780 Jul 24 23:27 /home/brian/dev/rust2/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-4e7c5e5c.so
```
file size after:
```
-rw-rw-r-- 1 brian brian 101542484 Jul 25 00:34 x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-4e7c5e5c.rlib
-rwxrwxr-x 1 brian brian 21348862 Jul 25 00:34 x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-4e7c5e5c.so
```
Text size decreases by 52486 while data size increases by 143686.
section size before:
```
text data bss dec hex filename
12712262 5924997 368 18637627 11c633b x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-4e7c5e5c.so
```
section size after:
```
text data bss dec hex filename
12659776 6068683 368 18728827 11dc77b /home/brian/dev/rust/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-4e7c5e5c.so
```
I don't know if anything can be learned from these benchmarks. Looks like a wash.
std bench before:
```
test collections::hashmap::bench::find_existing ... bench: 43452 ns/iter (+/- 2423)
test collections::hashmap::bench::find_nonexisting ... bench: 42416 ns/iter (+/- 3996)
test collections::hashmap::bench::find_pop_insert ... bench: 214 ns/iter (+/- 11)
test collections::hashmap::bench::hashmap_as_queue ... bench: 123 ns/iter (+/- 6)
test collections::hashmap::bench::insert ... bench: 153 ns/iter (+/- 14)
test collections::hashmap::bench::new_drop ... bench: 547 ns/iter (+/- 259)
test collections::hashmap::bench::new_insert_drop ... bench: 682 ns/iter (+/- 366)
test io::buffered::test::bench_buffered_reader ... bench: 1046 ns/iter (+/- 86)
test io::buffered::test::bench_buffered_stream ... bench: 2156 ns/iter (+/- 801)
test io::buffered::test::bench_buffered_writer ... bench: 1057 ns/iter (+/- 75)
test io::extensions::bench::u64_from_be_bytes_4_aligned ... bench: 80 ns/iter (+/- 5)
test io::extensions::bench::u64_from_be_bytes_4_unaligned ... bench: 81 ns/iter (+/- 6)
test io::extensions::bench::u64_from_be_bytes_7_aligned ... bench: 80 ns/iter (+/- 4)
test io::extensions::bench::u64_from_be_bytes_7_unaligned ... bench: 69 ns/iter (+/- 4)
test io::extensions::bench::u64_from_be_bytes_8_aligned ... bench: 69 ns/iter (+/- 3)
test io::extensions::bench::u64_from_be_bytes_8_unaligned ... bench: 81 ns/iter (+/- 4)
test io::mem::test::bench_buf_reader ... bench: 628 ns/iter (+/- 18)
test io::mem::test::bench_buf_writer ... bench: 478 ns/iter (+/- 19)
test io::mem::test::bench_mem_reader ... bench: 712 ns/iter (+/- 44)
test io::mem::test::bench_mem_writer_001_0000 ... bench: 31 ns/iter (+/- 1)
test io::mem::test::bench_mem_writer_001_0010 ... bench: 51 ns/iter (+/- 3)
test io::mem::test::bench_mem_writer_001_0100 ... bench: 121 ns/iter (+/- 8)
test io::mem::test::bench_mem_writer_001_1000 ... bench: 774 ns/iter (+/- 47)
test io::mem::test::bench_mem_writer_100_0000 ... bench: 756 ns/iter (+/- 50)
test io::mem::test::bench_mem_writer_100_0010 ... bench: 2726 ns/iter (+/- 198)
test io::mem::test::bench_mem_writer_100_0100 ... bench: 8961 ns/iter (+/- 712)
test io::mem::test::bench_mem_writer_100_1000 ... bench: 105673 ns/iter (+/- 24711)
test num::bench::bench_pow_function ... bench: 5849 ns/iter (+/- 371)
test num::strconv::bench::f64::float_to_string ... bench: 662 ns/iter (+/- 202)
test num::strconv::bench::int::to_str_base_36 ... bench: 424 ns/iter (+/- 7)
test num::strconv::bench::int::to_str_bin ... bench: 1227 ns/iter (+/- 80)
test num::strconv::bench::int::to_str_dec ... bench: 466 ns/iter (+/- 13)
test num::strconv::bench::int::to_str_hex ... bench: 498 ns/iter (+/- 22)
test num::strconv::bench::int::to_str_oct ... bench: 502 ns/iter (+/- 229)
test num::strconv::bench::uint::to_str_base_36 ... bench: 375 ns/iter (+/- 7)
test num::strconv::bench::uint::to_str_bin ... bench: 1011 ns/iter (+/- 590)
test num::strconv::bench::uint::to_str_dec ... bench: 407 ns/iter (+/- 17)
test num::strconv::bench::uint::to_str_hex ... bench: 442 ns/iter (+/- 7)
test num::strconv::bench::uint::to_str_oct ... bench: 433 ns/iter (+/- 46)
test path::posix::bench::ends_with_path_home_dir ... bench: 167 ns/iter (+/- 10)
test path::posix::bench::ends_with_path_missmatch_jome_home ... bench: 148 ns/iter (+/- 6)
test path::posix::bench::is_ancestor_of_path_with_10_dirs ... bench: 221 ns/iter (+/- 31)
test path::posix::bench::join_abs_path_home_dir ... bench: 144 ns/iter (+/- 23)
test path::posix::bench::join_home_dir ... bench: 196 ns/iter (+/- 9)
test path::posix::bench::join_many_abs_path_home_dir ... bench: 143 ns/iter (+/- 6)
test path::posix::bench::join_many_home_dir ... bench: 195 ns/iter (+/- 8)
test path::posix::bench::path_relative_from_backward ... bench: 248 ns/iter (+/- 10)
test path::posix::bench::path_relative_from_forward ... bench: 241 ns/iter (+/- 13)
test path::posix::bench::path_relative_from_same_level ... bench: 296 ns/iter (+/- 11)
test path::posix::bench::push_abs_path_home_dir ... bench: 104 ns/iter (+/- 7)
test path::posix::bench::push_home_dir ... bench: 27311 ns/iter (+/- 2727)
test path::posix::bench::push_many_abs_path_home_dir ... bench: 109 ns/iter (+/- 5)
test path::posix::bench::push_many_home_dir ... bench: 23263 ns/iter (+/- 1726)
test rand::bench::rand_isaac ... bench: 884 ns/iter (+/- 31) = 904 MB/s
test rand::bench::rand_isaac64 ... bench: 440 ns/iter (+/- 126) = 1818 MB/s
test rand::bench::rand_shuffle_100 ... bench: 2518 ns/iter (+/- 1371)
test rand::bench::rand_std ... bench: 429 ns/iter (+/- 17) = 1864 MB/s
test rand::bench::rand_xorshift ... bench: 0 ns/iter (+/- 0) = 800000 MB/s
```
std bench after:
```
test collections::hashmap::bench::find_existing ... bench: 43635 ns/iter (+/- 4508)
test collections::hashmap::bench::find_nonexisting ... bench: 42323 ns/iter (+/- 1753)
test collections::hashmap::bench::find_pop_insert ... bench: 216 ns/iter (+/- 11)
test collections::hashmap::bench::hashmap_as_queue ... bench: 125 ns/iter (+/- 8)
test collections::hashmap::bench::insert ... bench: 153 ns/iter (+/- 63)
test collections::hashmap::bench::new_drop ... bench: 517 ns/iter (+/- 282)
test collections::hashmap::bench::new_insert_drop ... bench: 734 ns/iter (+/- 264)
test io::buffered::test::bench_buffered_reader ... bench: 1063 ns/iter (+/- 206)
test io::buffered::test::bench_buffered_stream ... bench: 2321 ns/iter (+/- 2302)
test io::buffered::test::bench_buffered_writer ... bench: 1060 ns/iter (+/- 24)
test io::extensions::bench::u64_from_be_bytes_4_aligned ... bench: 69 ns/iter (+/- 2)
test io::extensions::bench::u64_from_be_bytes_4_unaligned ... bench: 81 ns/iter (+/- 7)
test io::extensions::bench::u64_from_be_bytes_7_aligned ... bench: 70 ns/iter (+/- 5)
test io::extensions::bench::u64_from_be_bytes_7_unaligned ... bench: 69 ns/iter (+/- 5)
test io::extensions::bench::u64_from_be_bytes_8_aligned ... bench: 80 ns/iter (+/- 6)
test io::extensions::bench::u64_from_be_bytes_8_unaligned ... bench: 81 ns/iter (+/- 5)
test io::mem::test::bench_buf_reader ... bench: 663 ns/iter (+/- 44)
test io::mem::test::bench_buf_writer ... bench: 489 ns/iter (+/- 17)
test io::mem::test::bench_mem_reader ... bench: 700 ns/iter (+/- 23)
test io::mem::test::bench_mem_writer_001_0000 ... bench: 31 ns/iter (+/- 3)
test io::mem::test::bench_mem_writer_001_0010 ... bench: 49 ns/iter (+/- 5)
test io::mem::test::bench_mem_writer_001_0100 ... bench: 112 ns/iter (+/- 6)
test io::mem::test::bench_mem_writer_001_1000 ... bench: 765 ns/iter (+/- 59)
test io::mem::test::bench_mem_writer_100_0000 ... bench: 727 ns/iter (+/- 54)
test io::mem::test::bench_mem_writer_100_0010 ... bench: 2586 ns/iter (+/- 215)
test io::mem::test::bench_mem_writer_100_0100 ... bench: 8846 ns/iter (+/- 439)
test io::mem::test::bench_mem_writer_100_1000 ... bench: 105747 ns/iter (+/- 17443)
test num::bench::bench_pow_function ... bench: 5844 ns/iter (+/- 421)
test num::strconv::bench::f64::float_to_string ... bench: 669 ns/iter (+/- 571)
test num::strconv::bench::int::to_str_base_36 ... bench: 417 ns/iter (+/- 24)
test num::strconv::bench::int::to_str_bin ... bench: 1216 ns/iter (+/- 36)
test num::strconv::bench::int::to_str_dec ... bench: 466 ns/iter (+/- 24)
test num::strconv::bench::int::to_str_hex ... bench: 492 ns/iter (+/- 8)
test num::strconv::bench::int::to_str_oct ... bench: 496 ns/iter (+/- 295)
test num::strconv::bench::uint::to_str_base_36 ... bench: 366 ns/iter (+/- 8)
test num::strconv::bench::uint::to_str_bin ... bench: 1005 ns/iter (+/- 69)
test num::strconv::bench::uint::to_str_dec ... bench: 396 ns/iter (+/- 20)
test num::strconv::bench::uint::to_str_hex ... bench: 435 ns/iter (+/- 4)
test num::strconv::bench::uint::to_str_oct ... bench: 436 ns/iter (+/- 451)
test path::posix::bench::ends_with_path_home_dir ... bench: 171 ns/iter (+/- 6)
test path::posix::bench::ends_with_path_missmatch_jome_home ... bench: 152 ns/iter (+/- 6)
test path::posix::bench::is_ancestor_of_path_with_10_dirs ... bench: 215 ns/iter (+/- 8)
test path::posix::bench::join_abs_path_home_dir ... bench: 143 ns/iter (+/- 6)
test path::posix::bench::join_home_dir ... bench: 192 ns/iter (+/- 29)
test path::posix::bench::join_many_abs_path_home_dir ... bench: 144 ns/iter (+/- 9)
test path::posix::bench::join_many_home_dir ... bench: 194 ns/iter (+/- 19)
test path::posix::bench::path_relative_from_backward ... bench: 254 ns/iter (+/- 15)
test path::posix::bench::path_relative_from_forward ... bench: 244 ns/iter (+/- 17)
test path::posix::bench::path_relative_from_same_level ... bench: 293 ns/iter (+/- 27)
test path::posix::bench::push_abs_path_home_dir ... bench: 108 ns/iter (+/- 5)
test path::posix::bench::push_home_dir ... bench: 32292 ns/iter (+/- 4361)
test path::posix::bench::push_many_abs_path_home_dir ... bench: 108 ns/iter (+/- 6)
test path::posix::bench::push_many_home_dir ... bench: 20305 ns/iter (+/- 1331)
test rand::bench::rand_isaac ... bench: 888 ns/iter (+/- 35) = 900 MB/s
test rand::bench::rand_isaac64 ... bench: 439 ns/iter (+/- 17) = 1822 MB/s
test rand::bench::rand_shuffle_100 ... bench: 2582 ns/iter (+/- 1001)
test rand::bench::rand_std ... bench: 431 ns/iter (+/- 93) = 1856 MB/s
test rand::bench::rand_xorshift ... bench: 0 ns/iter (+/- 0) = 800000 MB/s
```
2014-07-28 20:51:33 +00:00
nham
96cf01138b
Fix some of the documentation std::io::fs.
2014-07-28 14:14:56 -04:00
Jonas Hietala
23b84e55e4
doc: use //! instead of /*! ... */ in std::rand
2014-07-28 17:52:48 +02:00
Jonas Hietala
42ca8a70d6
doc: More efficient Monty Hall simulation
2014-07-28 17:51:06 +02:00
Jonas Hietala
bf1ba83292
doc: Monty Hall simulation for std::rand
...
A larger example for std::rand
2014-07-28 13:57:30 +02:00
Jonas Hietala
28d543a40f
doc: Correctly onclose code blocks in HashSet
2014-07-27 16:05:53 +02:00
bors
32e521ffab
auto merge of #15941 : treeman/rust/doc-lru, r=alexcrichton
2014-07-26 22:46:13 +00:00
bors
92c97059ff
auto merge of #15787 : treeman/rust/hashmap-doc, r=alexcrichton
...
Add an example showing how to use the map with a custom type. Fill in
examples for methods without ones.
Also move `pop_equiv` next to related public methods, to not create a
duplicate trait in the docs.
2014-07-25 23:01:16 +00:00
Brian Anderson
53f0eae386
Revert "Use fewer instructions for fail!"
...
This reverts commit c61f9763e2 .
Conflicts:
src/librustrt/unwind.rs
src/libstd/macros.rs
2014-07-25 15:57:15 -07:00
Brian Anderson
cf7a89f0c0
std: Use correct conventions for statics in macros
2014-07-25 15:54:56 -07:00
Brian Anderson
f7ab07c780
Put the struct passed to unwinding functions into a static
...
Produces very clean asm, but makes bigger binaries.
2014-07-25 00:40:58 -07:00
Brian Anderson
4636b32a42
Make most of the failure functions take &(&'static str, uint)
...
Passing one pointer takes less code than one pointer and an integer.
2014-07-25 00:02:29 -07:00
Patrick Walton
caa564bea3
librustc: Stop desugaring for expressions and translate them directly.
...
This makes edge cases in which the `Iterator` trait was not in scope
and/or `Option` or its variants were not in scope work properly.
This breaks code that looks like:
struct MyStruct { ... }
impl MyStruct {
fn next(&mut self) -> Option<int> { ... }
}
for x in MyStruct { ... } { ... }
Change ad-hoc `next` methods like the above to implementations of the
`Iterator` trait. For example:
impl Iterator<int> for MyStruct {
fn next(&mut self) -> Option<int> { ... }
}
Closes #15392 .
[breaking-change]
2014-07-24 18:58:12 -07:00
Adolfo Ochagavía
75a0062d88
Add string::raw::from_buf
2014-07-24 07:25:43 -07:00
Adolfo Ochagavía
684479ab91
Fix travis errors
2014-07-24 07:25:43 -07:00
Adolfo Ochagavía
6e509d3462
Deprecated str::raw::from_buf_len
...
Replaced by `string::raw::from_buf_len`
[breaking-change]
2014-07-24 07:25:43 -07:00
Adolfo Ochagavía
eacc5d779f
Deprecated str::raw::from_c_str
...
Use `string::raw::from_buf` instead
[breaking-change]
2014-07-24 07:25:43 -07:00
Adolfo Ochagavía
ba707fb3a0
Remove OwnedStr trait
...
This trait was only implemented by `String`. It provided the methods
`into_bytes` and `append`, both of which **are already implemented as normal
methods** of `String` (not as trait methods). This change improves the
consistency of strings.
This shouldn't break any code, except if somebody has implemented
`OwnedStr` for a user-defined type.
2014-07-24 07:25:43 -07:00
Jonas Hietala
c4ce4c8f9b
Cleanup HashMap documentation.
...
Link to mentioned methods. Use `# Failure` tags to describe failure.
Make `pop_equiv`, `find_equiv` and `get_copy` standalone.
2014-07-24 16:25:19 +02:00
Jonas Hietala
6bbe92e6ef
Cleanup LruCache doc.
2014-07-24 14:40:57 +02:00
Jonas Hietala
3c45fe9e1d
Documentation examples for LruCache.
2014-07-24 12:51:42 +02:00
Jonas Hietala
7028b3fda9
Remove explicit rust code specifier. Unhide use HashMap.
2014-07-24 10:35:04 +02:00
Jonas Hietala
0d61c6b128
Fill in example code for HashMap.
...
Add an example showing how to use the map with a custom type. Fill in
examples for methods in the hashmap file without ones.
Also move pop_equiv next to related public methods, to not create a
duplicate trait implementation in the docs.
2014-07-24 10:32:14 +02:00
Brian Anderson
71a75cc2ce
Just land already
2014-07-23 13:20:17 -07:00
Brian Anderson
054b1ff989
Remove kludgy imports from vec! macro
2014-07-23 13:20:17 -07:00
Brian Anderson
d36a8f3f9c
collections: Move push/pop to MutableSeq
...
Implement for Vec, DList, RingBuf. Add MutableSeq to the prelude.
Since the collections traits are in the prelude most consumers of
these methods will continue to work without change.
[breaking-change]
2014-07-23 13:20:10 -07:00
bors
bfcde309e7
auto merge of #15876 : brson/rust/failfat, r=pcwalton
...
Adds a new runtime unwinding function that encapsulates the printing of the words "explicit failure" when `fail!()` is called w/o arguments.
The before/after optimized assembly:
```
leaq "str\"str\"(1412)"(%rip), %rax
movq %rax, 24(%rsp)
movq $16, 32(%rsp)
leaq "str\"str\"(1413)"(%rip), %rax
movq %rax, 8(%rsp)
movq $19, 16(%rsp)
leaq 24(%rsp), %rdi
leaq 8(%rsp), %rsi
movl $11, %edx
callq _ZN6unwind12begin_unwind21h15836560661922107792E
```
```
leaq "str\"str\"(1369)"(%rip), %rax
movq %rax, 8(%rsp)
movq $19, 16(%rsp)
leaq 8(%rsp), %rdi
movl $11, %esi
callq _ZN6unwind31begin_unwind_no_time_to_explain20hd1c720cdde6a116480dE@PLT
```
Before/after filesizes:
rwxrwxr-x 1 brian brian 21479503 Jul 20 22:09 stage2-old/lib/librustc-4e7c5e5c.so
rwxrwxr-x 1 brian brian 21475415 Jul 20 22:30 x86_64-unknown-linux-gnu/stage2/lib/librustc-4e7c5e5c.so
This is the lowest-hanging fruit in the fail-bloat wars. Further fixes are going to require harder tradeoffs.
r? @pcwalton
2014-07-22 10:46:16 +00:00
bors
8d43e4474a
auto merge of #15867 : cmr/rust/rewrite-lexer4, r=alexcrichton
2014-07-22 07:16:17 +00:00
Corey Richardson
35c0bf3292
Add a ton of ignore-lexer-test
2014-07-21 18:38:40 -07:00
Brian Anderson
c61f9763e2
Use fewer instructions for fail!
...
Adds a special-case fail function, rustrt::unwind::begin_unwind_no_time_to_explain,
that encapsulates the printing of the words "explicit failure".
The before/after optimized assembly:
```
leaq "str\"str\"(1369)"(%rip), %rax
movq %rax, 8(%rsp)
movq $19, 16(%rsp)
leaq 8(%rsp), %rdi
movl $11, %esi
callq _ZN6unwind31begin_unwind_no_time_to_explain20hd1c720cdde6a116480dE@PLT
```
```
leaq "str\"str\"(1412)"(%rip), %rax
movq %rax, 24(%rsp)
movq $16, 32(%rsp)
leaq "str\"str\"(1413)"(%rip), %rax
movq %rax, 8(%rsp)
movq $19, 16(%rsp)
leaq 24(%rsp), %rdi
leaq 8(%rsp), %rsi
movl $11, %edx
callq _ZN6unwind12begin_unwind21h15836560661922107792E
```
Before/after filesizes:
rwxrwxr-x 1 brian brian 21479503 Jul 20 22:09 stage2-old/lib/librustc-4e7c5e5c.so
rwxrwxr-x 1 brian brian 21475415 Jul 20 22:30 x86_64-unknown-linux-gnu/stage2/lib/librustc-4e7c5e5c.so
2014-07-21 13:50:12 -07:00
Corey Richardson
188d889aaf
ignore-lexer-test to broken files and remove some tray hyphens
...
I blame @ChrisMorgan for the hyphens.
2014-07-21 10:59:58 -07:00
Steven Fackler
2e24ef377e
Rename to_str to to_string
...
Closes #15796 .
[breaking-change]
2014-07-21 09:54:52 -07:00
bors
e6b28f9ac3
auto merge of #15797 : brson/rust/taskstab, r=alexcrichton
...
Summary:
* alloc::rc module stable
* Rc type stable
* Functions relating to weak references experimental
* core::cmp module stable
* PartialEq/Eq/PartialOrd/Ord unstable because trait reform will make them change again
* Equiv experimental because there may be better sol'ns
* lexical_ordering deprecated because it can be done trivially with the Ord trait
* min/max stable
* std::task module stable
* TaskBuilder::stdout/stderr experimental because we aren't certain we want to configure the environment this way
* try_future experimental because Future is experimental
* try unstable because the error type might change
* deschedule/failing unstable
The major thing I did differently than previously-discussed is that I made `try` experimental: there's been discussion that the error type `Box<Any + Send>` is not sufficient.
Per https://github.com/rust-lang/meeting-minutes/blob/master/Meeting-API-review-2014-07-16.md .
2014-07-20 12:01:31 +00:00
bors
d8652de942
auto merge of #15746 : steveklabnik/rust/docs_random, r=alexcrichton
...
This is now linked to in the guide, so I want to make sure it's good. This
adds a bit more explanation, and brings usage in line with current good style.
2014-07-19 23:26:37 +00:00
Brian Anderson
0b946f0a90
std: Stabilize task module.
...
Most stable. deschedule/failing experimental because of concerns about
naming and desirability.
Adds task::name() to replace deprecated task::with_name().
2014-07-18 18:34:38 -07:00
Steve Klabnik
c8b8444ce1
Improve documentation for rand::random
...
This is now linked to in the guide, so I want to make sure it's good. This
adds a bit more explanation, and brings usage in line with current good style.
2014-07-18 21:19:51 -04:00
Jonas Hietala
01b6fd3e82
Remove examples from trait implementations. Unhide imports.
2014-07-18 16:34:07 +02:00
Jonas Hietala
b2a02b580d
Fill in documentation for HashSet.
...
Example how to use the set with a custom type. Fill in examples for the missing methods.
2014-07-18 14:10:39 +02:00
Jonas Hietala
80ef6b83ef
Extend HashSet documentation.
...
Add main example and simple examples for the methods.
2014-07-16 17:26:57 +02:00
bors
2692ae1ddd
auto merge of #15619 : kwantam/rust/master, r=huonw
...
- `width()` computes the displayed width of a string, ignoring the width of control characters.
- arguably we might do *something* else for control characters, but the question is, what?
- users who want to do something else can iterate over chars()
- `graphemes()` returns a `Graphemes` struct, which implements an iterator over the grapheme clusters of a &str.
- fully compliant with [UAX#29](http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries )
- passes all [Unicode-supplied tests](http://www.unicode.org/reports/tr41/tr41-15.html#Tests29 )
- added code to generate additionial categories in `unicode.py`
- `Cn` aka `Not_Assigned`
- categories necessary for grapheme cluster breaking
- tidied up the exports from libunicode
- all exports are exposed through a module rather than directly at crate root.
- std::prelude imports UnicodeChar and UnicodeStrSlice from std::char and std::str rather than directly from libunicode
closes #7043
2014-07-15 22:51:17 +00:00
Adolfo Ochagavía
584fbde5d1
Fix errors
2014-07-15 20:34:16 +02:00
Adolfo Ochagavía
c6b82c7566
Deprecate str::from_utf8_lossy
...
Use `String::from_utf8_lossy` instead
[breaking-change]
2014-07-15 19:55:21 +02:00
Adolfo Ochagavía
1900abdd9b
Deprecate str::from_utf16_lossy
...
Use `String::from_utf16_lossy` instead.
[breaking-change]
2014-07-15 19:55:20 +02:00
Adolfo Ochagavía
6ac4fc7fc2
Deprecate str::from_utf16
...
Use `String::from_utf16` instead
[breaking-change]
2014-07-15 19:55:19 +02:00
Adolfo Ochagavía
05baf9b10c
Deprecate str::from_char
...
Use `String::from_char` or `.to_str` instead
[breaking-change]
2014-07-15 19:55:18 +02:00
Adolfo Ochagavía
211f1caa29
Deprecate str::from_utf8_owned
...
Use `String::from_utf8` instead
[breaking-change]
2014-07-15 19:55:17 +02:00
kwantam
cf432b8f8f
add Graphemes iterator; tidy unicode exports
...
- Graphemes and GraphemeIndices structs implement iterators over
grapheme clusters analogous to the Chars and CharOffsets for chars in
a string. Iterator and DoubleEndedIterator are available for both.
- tidied up the exports for libunicode. crate root exports are now moved
into more appropriate module locations:
- UnicodeStrSlice, Words, Graphemes, GraphemeIndices are in str module
- UnicodeChar exported from char instead of crate root
- canonical_combining_class is exported from str rather than crate root
Since libunicode's exports have changed, programs that previously relied
on the old export locations will need to change their `use` statements
to reflect the new ones. See above for more information on where the new
exports live.
closes #7043
[breaking-change]
2014-07-14 19:53:46 -04:00
Alex Crichton
fe67d269a5
std: Make unlink() more consistent
...
Currently when a read-only file has unlink() invoked on it on windows, the call
will fail. On unix, however, the call will succeed. In order to have a more
consistent behavior across platforms, this error is recognized on windows and
the file is changed to read-write before removal is attempted.
2014-07-14 14:24:50 -07:00
bors
996263a015
auto merge of #15653 : erickt/rust/master, r=alexcrichton
2014-07-14 04:01:26 +00:00