| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2016-10-24 | Add support for kernel randomness for Fuchsia | Raph Levien | -1/+55 | |
| Wire up cprng syscall as provider for rand::os::OsRng on Fuchsia. | ||||
| 2016-10-24 | Auto merge of #37382 - jonathandturner:rollup, r=jonathandturner | bors | -58/+72 | |
| Rollup of 7 pull requests - Successful merges: #37228, #37304, #37324, #37328, #37336, #37349, #37372 - Failed merges: | ||||
| 2016-10-24 | Rollup merge of #37372 - vtduncan:pathbuf-docs-link, r=steveklabnik | Jonathan Turner | -3/+7 | |
| Link to PathBuf from the Path docs I got stuck trying to use `Path` when `PathBuf` was what I needed. Hopefully this makes `PathBuf` and the module docs a bit easier to find for others. r? @steveklabnik | ||||
| 2016-10-24 | Rollup merge of #37304 - GuillaumeGomez:collections_url, r=frewsxcv | Jonathan Turner | -55/+65 | |
| Add missing urls in collections module r? @steveklabnik | ||||
| 2016-10-24 | Auto merge of #37313 - raphlinus:fuchsia, r=alexcrichton | bors | -37/+464 | |
| Add Fuchsia support Adds support for the x86_64-unknown-fuchsia target, which covers the Fuchsia operating system. | ||||
| 2016-10-24 | Link to PathBuf from the Path docs | Duncan | -3/+7 | |
| 2016-10-22 | Update libc submodule with corresponding fuchsia changes | Raph Levien | -5/+0 | |
| Also trim os::fuchsia::raw architectures. | ||||
| 2016-10-22 | Fix tidy warning | Raph Levien | -1/+1 | |
| Prefer FIXME to TODO | ||||
| 2016-10-22 | Fix missing DirEntryExt::ino | Raph Levien | -2/+2 | |
| The DirEntryExt::ino() implementation was omitted from the first iteration of this patch, because a dependency needed to be configured. The fix is straightforward enough. | ||||
| 2016-10-22 | Add Fuchsia support | Raph Levien | -36/+468 | |
| Adds support for the x86_64-unknown-fuchsia target, which covers the Fuchsia operating system. | ||||
| 2016-10-21 | Small docstring changes for include_bytes and include_str | Артём Павлов [Artyom Pavlov] | -5/+9 | |
| 2016-10-21 | Small doc change for include! | Артём Павлов [Artyom Pavlov] | -3/+4 | |
| 2016-10-21 | Fix a few links in the docs | Oliver Middleton | -3/+6 | |
| 2016-10-20 | Add missing urls in collections module | Guillaume Gomez | -55/+65 | |
| 2016-10-19 | Rollup merge of #37165 - GuillaumeGomez:bytes_url, r=kmcallister | Guillaume Gomez | -6/+12 | |
| Add missing urls for io types r? @steveklabnik | ||||
| 2016-10-19 | Auto merge of #37259 - GuillaumeGomez:fix_io_urls, r=frewsxcv | bors | -41/+52 | |
| Add more io urls r? @steveklabnik | ||||
| 2016-10-19 | Rollup merge of #37236 - bluss:range-argument, r=alexcrichton | Eduard-Mihai Burtescu | -0/+4 | |
| std::collections: Reexport libcollections's range module This is overdue, even if range and RangeArgument is still unstable. The stability attributes are the same ones as the other unstable item (Bound) here, they don't seem to matter. | ||||
| 2016-10-19 | Rollup merge of #37221 - diwic:6a-readdir-debug, r=alexcrichton | Eduard-Mihai Burtescu | -0/+17 | |
| impl Debug for ReadDir It is good practice to implement Debug for public types, and indicating what directory you're reading seems useful. Signed-off-by: David Henningsson <diwic@ubuntu.com> | ||||
| 2016-10-18 | Typos in some linkage | Guillaume Gomez | -41/+52 | |
| 2016-10-17 | Rollup merge of #37189 - nabeelomer:master, r=bluss | Guillaume Gomez | -3/+5 | |
| Updated the docs for Error::description Fixes https://github.com/rust-lang/rust/issues/37163 | ||||
| 2016-10-17 | std::collections: Reexport libcollections's range module | Ulrik Sverdrup | -0/+4 | |
| This is overdue, even if range and RangeArgument is still unstable. The stability attributes are the same ones as the other unstable item (Bound) here, they don't seem to matter. | ||||
| 2016-10-17 | hashmap: Store hashes as usize internally | Ulrik Sverdrup | -25/+44 | |
| We can't use more than usize's bits of a hash to select a bucket anyway, so we only need to store that part in the table. This should be an improvement for the size of the data structure on 32-bit platforms. Smaller data means better cache utilization and hopefully better performance. | ||||
| 2016-10-17 | Auto merge of #37162 - matklad:static-mut-lint, r=jseyfried | bors | -7/+7 | |
| Lint against lowercase static mut Closes #37145. Lint for non mut statics was added in https://github.com/rust-lang/rust/pull/7523, and it explicitly did not cover mut statics. I am not sure why. | ||||
| 2016-10-16 | Implement `RefUnwindSafe` for atomic types | Andrew Paseltiner | -1/+43 | |
| Closes #37136 | ||||
| 2016-10-16 | impl Debug for ReadDir | David Henningsson | -0/+17 | |
| It is good practice to implement Debug for public types, and indicating what directory you're reading seems useful. Signed-off-by: David Henningsson <diwic@ubuntu.com> | ||||
| 2016-10-15 | Fixed typo | Nabeel Omer | -1/+1 | |
| 2016-10-15 | Corrected broken markdown link | Nabeel Omer | -1/+1 | |
| 2016-10-15 | Updated the docs for Error::description | Nabeel Omer | -3/+5 | |
| 2016-10-14 | Auto merge of #35704 - tbu-:pr_pread_pwrite, r=alexcrichton | bors | -8/+375 | |
| Implement `read_offset` and `write_offset` These functions allow to read from and write to a file from multiple threads without changing the per-file cursor, avoiding the race between the seek and the read. | ||||
| 2016-10-14 | Android: Fix unused-imports warning | Tobias Bucher | -1/+2 | |
| 2016-10-14 | Rollup merge of #37141 - nabeelomer:master, r=sfackler | Jonathan Turner | -0/+8 | |
| Documented that RwLock might panic Fixes https://github.com/rust-lang/rust/issues/37010 | ||||
| 2016-10-14 | Rollup merge of #37115 - GuillaumeGomez:buf_reader_urls, r=kmcallister | Jonathan Turner | -5/+13 | |
| add missing urls for BufWriter and BufReader r? @steveklabnik | ||||
| 2016-10-14 | Rename static mut to upper case | Aleksey Kladov | -7/+7 | |
| 2016-10-14 | Add missing urls for io types | Guillaume Gomez | -6/+12 | |
| 2016-10-14 | Only use Android fallback for {ftruncate,pread,pwrite} on 32 bit | Tobias Bucher | -0/+24 | |
| 2016-10-14 | Auto merge of #36692 - arthurprs:hashmap-layout, r=alexcrichton | bors | -88/+68 | |
| Cache conscious hashmap table Right now the internal HashMap representation is 3 unziped arrays hhhkkkvvv, I propose to change it to hhhkvkvkv (in further iterations kvkvkvhhh may allow inplace grow). A previous attempt is at #21973. This layout is generally more cache conscious as it makes the value immediately accessible after a key matches. The separated hash arrays is a _no-brainer_ because of how the RH algorithm works and that's unchanged. **Lookups**: Upon a successful match in the hash array the code can check the key and immediately have access to the value in the same or next cache line (effectively saving a L[1,2,3] miss compared to the current layout). **Inserts/Deletes/Resize**: Moving values in the table (robin hooding it) is faster because it touches consecutive cache lines and uses less instructions. Some backing benchmarks (besides the ones bellow) for the benefits of this layout can be seen here as well http://www.reedbeta.com/blog/2015/01/12/data-oriented-hash-table/ The obvious drawbacks is: padding can be wasted between the key and value. Because of that keys(), values() and contains() can consume more cache and be slower. Total wasted padding between items (C being the capacity of the table). * Old layout: C * (K-K padding) + C * (V-V padding) * Proposed: C * (K-V padding) + C * (V-K padding) In practice padding between K-K and V-V *can* be smaller than K-V and V-K. The overhead is capped(ish) at sizeof u64 - 1 so we can actually measure the worst case (u8 at the end of key type and value with aliment of 1, _hardly the average case in practice_). Starting from the worst case the memory overhead is: * `HashMap<u64, u8>` 46% memory overhead. (aka *worst case*) * `HashMap<u64, u16>` 33% memory overhead. * `HashMap<u64, u32>` 20% memory overhead. * `HashMap<T, T>` 0% memory overhead * Worst case based on sizeof K + sizeof V: | x | 16 | 24 | 32 | 64 | 128 | |----------------|--------|--------|--------|-------|-------| | (8+x+7)/(8+x) | 1.29 | 1.22 | 1.18 | 1.1 | 1.05 | I've a test repo here to run benchmarks https://github.com/arthurprs/hashmap2/tree/layout ``` ➜ hashmap2 git:(layout) ✗ cargo benchcmp hhkkvv:: hhkvkv:: bench.txt name hhkkvv:: ns/iter hhkvkv:: ns/iter diff ns/iter diff % grow_10_000 922,064 783,933 -138,131 -14.98% grow_big_value_10_000 1,901,909 1,171,862 -730,047 -38.38% grow_fnv_10_000 443,544 418,674 -24,870 -5.61% insert_100 2,469 2,342 -127 -5.14% insert_1000 23,331 21,536 -1,795 -7.69% insert_100_000 4,748,048 3,764,305 -983,743 -20.72% insert_10_000 321,744 290,126 -31,618 -9.83% insert_int_bigvalue_10_000 749,764 407,547 -342,217 -45.64% insert_str_10_000 337,425 334,009 -3,416 -1.01% insert_string_10_000 788,667 788,262 -405 -0.05% iter_keys_100_000 394,484 374,161 -20,323 -5.15% iter_keys_big_value_100_000 402,071 620,810 218,739 54.40% iter_values_100_000 424,794 373,004 -51,790 -12.19% iterate_100_000 424,297 389,950 -34,347 -8.10% lookup_100_000 189,997 186,554 -3,443 -1.81% lookup_100_000_bigvalue 192,509 189,695 -2,814 -1.46% lookup_10_000 154,251 145,731 -8,520 -5.52% lookup_10_000_bigvalue 162,315 146,527 -15,788 -9.73% lookup_10_000_exist 132,769 128,922 -3,847 -2.90% lookup_10_000_noexist 146,880 144,504 -2,376 -1.62% lookup_1_000_000 137,167 132,260 -4,907 -3.58% lookup_1_000_000_bigvalue 141,130 134,371 -6,759 -4.79% lookup_1_000_000_bigvalue_unif 567,235 481,272 -85,963 -15.15% lookup_1_000_000_unif 589,391 453,576 -135,815 -23.04% merge_shuffle 1,253,357 1,207,387 -45,970 -3.67% merge_simple 40,264,690 37,996,903 -2,267,787 -5.63% new 6 5 -1 -16.67% with_capacity_10e5 3,214 3,256 42 1.31% ``` ``` ➜ hashmap2 git:(layout) ✗ cargo benchcmp hhkkvv:: hhkvkv:: bench.txt name hhkkvv:: ns/iter hhkvkv:: ns/iter diff ns/iter diff % iter_keys_100_000 391,677 382,839 -8,838 -2.26% iter_keys_1_000_000 10,797,360 10,209,898 -587,462 -5.44% iter_keys_big_value_100_000 414,736 662,255 247,519 59.68% iter_keys_big_value_1_000_000 10,147,837 12,067,938 1,920,101 18.92% iter_values_100_000 440,445 377,080 -63,365 -14.39% iter_values_1_000_000 10,931,844 9,979,173 -952,671 -8.71% iterate_100_000 428,644 388,509 -40,135 -9.36% iterate_1_000_000 11,065,419 10,042,427 -1,022,992 -9.24% ``` | ||||
| 2016-10-13 | Update | Nabeel Omer | -3/+8 | |
| 2016-10-13 | Updated RwLock Docs | Nabeel Omer | -0/+3 | |
| 2016-10-12 | Rollup merge of #37089 - GuillaumeGomez:io_urls, r=frewsxcv | Alex Crichton | -32/+37 | |
| Add missing urls in io module r? @steveklabnik | ||||
| 2016-10-12 | Rollup merge of #36995 - nrc:stable, r=@nikomatsakis | Alex Crichton | -12/+7 | |
| stabilise ?, attributes on stmts, deprecate Reflect r? @nikomatsakis | ||||
| 2016-10-12 | Rollup merge of #36762 - achanda:sockaddr_type, r=alexcrichton | Alex Crichton | -0/+35 | |
| Add two functions to check type of SockAddr These can be used to determine the type of the underlying IP address r? @alexcrichton | ||||
| 2016-10-12 | add missing urls for BufWriter and BufReader | Guillaume Gomez | -5/+13 | |
| 2016-10-12 | Cache conscious hashmap table | arthurprs | -88/+68 | |
| 2016-10-12 | Remove unnecessary `unsafe` block | Tobias Bucher | -20/+16 | |
| 2016-10-12 | Deprecate `Reflect` | Nick Cameron | -11/+6 | |
| [tracking issue](https://github.com/rust-lang/rust/issues/27749) | ||||
| 2016-10-12 | Stabilise `?` | Nick Cameron | -1/+1 | |
| cc [`?` tracking issue](https://github.com/rust-lang/rust/issues/31436) | ||||
| 2016-10-11 | Add missing urls in io module | Guillaume Gomez | -32/+37 | |
| 2016-10-11 | Fix Android compilation `io::Error` -> `io::ErrorKind` | Tobias Bucher | -2/+2 | |
| 2016-10-11 | Auto merge of #36825 - sbwtw:master, r=alexcrichton | bors | -0/+2 | |
| add println!() macro with out any arguments lets add println!() to write "\n". like java https://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#println() | ||||
| 2016-10-10 | Auto merge of #36707 - achanda:ip_type, r=alexcrichton | bors | -0/+32 | |
| Add two functions to check type of given address The is_v4 function returns true if the given IP is v4. The is_v6 function returns true if the IP is v6. | ||||
