- 16 6月, 2013 3 次提交
-
-
由 Brian Anderson 提交于
It is suffering from a bad case of megabitrot.
-
由 bors 提交于
Currently, when calling glue functions, we cast the function to match the argument type. This interacts very badly with LLVM and breaks inlining of the glue code. It's more efficient to use a unified function type for the glue functions and always cast the function argument instead of the function. The resulting code for rustc is about 13% faster (measured up to and including the "trans" pass) and the resulting librustc is about 5% smaller.
-
由 Björn Steinbrink 提交于
Currently, when calling glue functions, we cast the function to match the argument type. This interacts very badly with LLVM and breaks inlining of the glue code. It's more efficient to use a unified function type for the glue functions and always cast the function argument instead of the function. The resulting code for rustc is about 13% faster (measured up to and including the "trans" pass) and the resulting librustc is about 5% smaller.
-
- 15 6月, 2013 29 次提交
-
-
由 bors 提交于
r? @graydon Automate more tests described in the commands.txt file, and add infrastructure for running them. Right now, tests shell out to call rustpkg. This is not ideal. Goes part of the way towards addressing #5683
-
由 bors 提交于
This is caused by StrVector having a generic implementation for &[S] and so #5898 means that method resolution of ~[~[1]].concat() sees that both StrVector and VectorVector have methods that (superficially) match. They are now connect_vec and concat_vec, which means that they can actually be called.
-
由 bors 提交于
This means that type definitions and function signatures have pretty colours.
-
由 bors 提交于
r? @brson links to issues: #7065 the race that's fixed; #7066 the perf improvement I added. There are also some minor cleanup commits here. To measure the performance improvement from replacing the exclusive with an atomic uint, I edited the ```msgsend-ring-rw-arcs``` bench test to do a ```write_downgrade``` instead of just a ```write```, so that it stressed the code paths that accessed ```read_count```. (At first I was still using ```write``` and saw no performance difference whatsoever, whoooops.) The bench test measures how long it takes to send 1,000,000 messages by using rwarcs to emulate pipes. I also measured the performance difference imposed by the fix to the ```access_lock``` race (which involves taking an extra semaphore in the ```cond.wait()``` path). The net result is that fixing the race imposes a 4% to 5% slowdown, but doing the atomic uint optimization gives a 6% to 8% speedup. Note that this speedup will be most visible in read- or downgrade-heavy workloads. If an RWARC's only users are writers, the optimization doesn't matter. All the same, I think this more than justifies the extra complexity I mentioned in #7066. The raw numbers are: ``` with xadd read count before write_cond fix 4.18 to 4.26 us/message with write_cond fix 4.35 to 4.39 us/message with exclusive read count before write_cond fix 4.41 to 4.47 us/message with write_cond fix 4.65 to 4.76 us/message ```
-
由 bors 提交于
Implement conditional support in terminfo, along with a few other related operators. Fix implementation of non-commutative arithmetic operators. Remove all known cases of task failure from `terminfo::parm::expand`, and change the method signature. Fix some other miscellaneous issues.
-
由 bors 提交于
This un-reverts the reverts of the rusti commits made awhile back. These were reverted for an LLVM failure in rustpkg. I believe that this is not a problem with these commits, but rather that rustc is being used in parallel for rustpkg tests (in-process). This is not working yet (almost! see #7011), so I serialized all the tests to run one after another. @brson, I'm mainly just guessing as to the cause of the LLVM failures in rustpkg tests. I'm confident that running tests in parallel is more likely to be the problem than those commits I made. Additionally, this fixes two recently reported issues with rusti.
-
由 bors 提交于
-
由 Tim Chevalier 提交于
Automate more tests described in the commands.txt file, and add infrastructure for running them. Right now, tests shell out to call rustpkg. This is not ideal.
-
由 Tim Chevalier 提交于
This confused me when it happened.
-
由 bors 提交于
r? @pnkfelix
-
由 bors 提交于
-
由 Huon Wilson 提交于
This is caused by StrVector having a generic implementation for &[S] and so #5898 means that method resolution of ~[~[1]].concat() sees that both StrVector and VectorVector have methods that (superficially) match. They are now connect_vec and concat_vec, which means that they can actually be called.
-
由 bors 提交于
The lookups for these items in external crates currently cause repeated decoding of the EBML metadata, which is pretty slow. Adding caches to avoid the repeated decoding reduces the time required for the type checking of librustc by about 25%.
-
由 Daniel Micay 提交于
copies can just be done explicitly: `xs.transform(|x|x.clone())`
-
由 Daniel Micay 提交于
replaced with mutable implementations of Iterator
-
由 Daniel Micay 提交于
replaced with `xs.mut_iter().enumerate()`
-
由 Daniel Micay 提交于
-
由 Björn Steinbrink 提交于
The lookups for these items in external crates currently cause repeated decoding of the EBML metadata, which is pretty slow. Adding caches to avoid the repeated decoding reduces the time required for the type checking of librustc by about 25%.
-
由 bors 提交于
-
由 Brian Anderson 提交于
-
由 Kevin Ballard 提交于
-
由 Kevin Ballard 提交于
Implement the %?, %t, %e, and %; operators. Also implement the %<, %=, %> operators, without which conditionals aren't very useful. Fix the order of parameters for the arithmetic operators. Implement the missing %^ operator.
-
由 Kevin Ballard 提交于
Replace all potentially-failing operations with Err returns and add tests. Remove the Char parameter type; characters are represented as Numbers. Fix integer constants to work properly when there are multiple constants in the same capability string. Tweak loop to use iterators instead of indexing into cap.
-
由 Kevin Ballard 提交于
-
由 Kevin Ballard 提交于
Take a new struct Variables instead of two &mut [] vectors for static and dynamic variables.
-
由 Kevin Ballard 提交于
-
由 Corey Richardson 提交于
-
由 Huon Wilson 提交于
This means that type definitions and function signatures have pretty colours. It uses the following template: ~~~ {.rust} <code> ~~~
-
由 Graydon Hoare 提交于
std: get std::path tests to work again
-
- 14 6月, 2013 8 次提交
-
-
由 Erick Tryzelaar 提交于
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
These passes are already run beforehand, no need to do them twice.
-
由 Alex Crichton 提交于
Closes #7120
-
由 Alex Crichton 提交于
This reverts commit 19adece6.
-
由 Alex Crichton 提交于
This reverts commit 541c657a.
-
由 Brian Anderson 提交于
This fixes the strange random crashes in compile-fail tests. This reverts commit 96cd61ad. Conflicts: src/librustc/driver/driver.rs src/libstd/str.rs src/libsyntax/ext/quote.rs
-
由 Daniel Micay 提交于
-