- 07 3月, 2014 13 次提交
-
-
由 Liigo Zhuang 提交于
-
由 bors 提交于
The arguments were accidentally swapped in the wrong order. Closes #12743
-
由 bors 提交于
This leverages the new hashing framework and hashmap implementation to provide a much speedier hashing algorithm for node ids and def ids. The hash algorithm used is currentl FNV hashing, but it's quite easy to swap out. I originally implemented hashing as the identity function, but this actually ended up in slowing down rustc compiling libstd from 8s to 13s. I would suspect that this is a result of a large number of collisions. With FNV hashing, we get these timings (compiling with --no-trans, in seconds): | | before | after | |-----------|---------:|--------:| | libstd | 8.324 | 6.703 | | stdtest | 47.674 | 46.857 | | libsyntax | 9.918 | 8.400 |
-
由 Alex Crichton 提交于
If #[feature(default_type_parameters)] is enabled for a crate, then deriving(Hash) will expand with Hash<W: Writer> instead of Hash<SipState> so more hash algorithms can be used.
-
由 Alex Crichton 提交于
The arguments were accidentally swapped in the wrong order. Closes #12743
-
由 Alex Crichton 提交于
This leverages the new hashing framework and hashmap implementation to provide a much speedier hashing algorithm for node ids and def ids. The hash algorithm used is currentl FNV hashing, but it's quite easy to swap out. I originally implemented hashing as the identity function, but this actually ended up in slowing down rustc compiling libstd from 8s to 13s. I would suspect that this is a result of a large number of collisions. With FNV hashing, we get these timings (compiling with --no-trans, in seconds): | | before | after | |-----------|---------:|--------:| | libstd | 8.324 | 6.703 | | stdtest | 47.674 | 46.857 | | libsyntax | 9.918 | 8.400 |
-
由 bors 提交于
Closes #6738 Closes #7061 Closes #7899 Closes #9719 Closes #10028 Closes #10228 Closes #10401 Closes #11192 Closes #11508 Closes #11529 Closes #11873 Closes #11925
-
由 bors 提交于
Turns out sundown has already escaped this content for us, so there's no need for us to escape it again. Closes #12736
-
由 bors 提交于
On Windows, `LLVMRustGetLastError()` may return non-utf8 mojibake string if system uses non-English locale. It caused ICE when llvm fails. This patch doesn't fix the real problem, but just make rustc not die.
-
由 Alex Crichton 提交于
Closes #6738 Closes #7061 Closes #7899 Closes #9719 Closes #10028 Closes #10228 Closes #10401 Closes #11192 Closes #11508 Closes #11529 Closes #11873 Closes #11925
-
由 bors 提交于
-
由 Alex Crichton 提交于
Turns out sundown has already escaped this content for us, so there's no need for us to escape it again. Closes #12736
-
由 Mike Boutin 提交于
-
- 06 3月, 2014 27 次提交
-
-
由 klutzy 提交于
On Windows, `LLVMRustGetLastError()` may return non-utf8 mojibake string if system uses non-English locale. It caused ICE when llvm fails. This patch doesn't fix the real problem, but just make rustc not die.
-
由 bors 提交于
Cosmetic changes at best, but there are so many such typos that I couldn't ignore them. :) Some occurrences of typos are linked to the generated documentations but no changes should break the builds.
-
由 bors 提交于
This version is slightly more up to date and is closer to the 3.5 that we're using. This also updates the travis config to have a build matrix which tests rust against LLVM 3.3 and 3.4. For pull requests only LLVM 3.4 is tested to reduce the load on travis. This is mostly just fluff, there's no real reason to gate rust on these results, it's more of just a nice thing to know when we break compatibility with LLVM 3.3 and 3.4 (and eventually 3.5). This turns off notifications of failed commits (which are sent out for pushes to master).
-
由 Kang Seonghoon 提交于
-
由 bors 提交于
The llvm.copysign and llvm.round intrinsics weren't added until LLVM 3.4, so if we're on LLVM 3.3 we lower these to calls in libm instead of LLVM intrinsics. This should fix our travis failures.
-
由 bors 提交于
This PR brings back limited debuginfo which allows for nice backtraces and breakpoints, but omits any info about variables and types. The `-g` and `--debuginfo` command line options have been extended to take an optional argument: `-g0` means no debug info. `-g1` means line-tables only. `-g2` means full debug info. Specifying `-g` without argument is equivalent to `-g2`. Fixes #12280
-
由 bors 提交于
Details are in the commit messages, but this closes a few issues seen with `libnative` recently.
-
由 Alex Crichton 提交于
This version is slightly more up to date and is closer to the 3.5 that we're using. This also updates the travis config to have a build matrix which tests rust against LLVM 3.3 and 3.4. For pull requests only LLVM 3.4 is tested to reduce the load on travis. This is mostly just fluff, there's no real reason to gate rust on these results, it's more of just a nice thing to know when we break compatibility with LLVM 3.3 and 3.4 (and eventually 3.5). This turns off notifications of failed commits (which are sent out for pushes to master).
-
由 bors 提交于
This commit adds a appear-on-over link to all section headers to generated documentation. Each header also receives an id now, even those generated through markdown. The purpose of this is to provide easy to link to sections. This modifies the default header markdown generation because the default id added looks like "toc_NN" which is difficult to reconcile among all sections (by default each section gets a "toc_0" id), and it's also not very descriptive of where you're going. This chooses to adopt the github-style anchors by taking the contents of the title and hyphen-separating them (after lower casing). Closes #12681
-
由 Michael Woerister 提交于
-
由 Michael Woerister 提交于
-
由 Michael Woerister 提交于
-
由 Alex Crichton 提交于
This commit adds a appear-on-over link to all section headers to generated documentation. Each header also receives an id now, even those generated through markdown. The purpose of this is to provide easy to link to sections. This modifies the default header markdown generation because the default id added looks like "toc_NN" which is difficult to reconcile among all sections (by default each section gets a "toc_0" id), and it's also not very descriptive of where you're going. This chooses to adopt the github-style anchors by taking the contents of the title and hyphen-separating them (after lower casing). Closes #12681
-
由 bors 提交于
Closes #8506.
-
由 Alex Crichton 提交于
When using tasks in Rust, the expectation is that the runtime does not exit before all tasks have exited. This is enforced in libgreen through the `SchedPool` type, and it is enforced in libnative through a `bookkeeping` module and a global count/mutex pair. Unfortunately, this means that a process which originates with libgreen will not wait for spawned native tasks. In order to fix this problem, the bookkeeping module was moved from libnative to libstd so the runtime itself can wait for native tasks to exit. Green tasks do not manage themselves through this bookkeeping module, but native tasks will continue to manage themselves through this module. Closes #12684
-
由 Jed Davis 提交于
Closes #8506. The `trans::adt` code for statics uses fields with `C_undef` values to insert alignment padding (because LLVM's own alignment padding isn't always sufficient for aggregate constants), and assumes that all fields in the actual Rust value are represented by non-undef LLVM values, to distinguish them from that padding. But for nullable pointer enums, if non-null variant has fields other than the pointer used as the discriminant, they would be set to undef in the null case, to reflect that they're never accessed. To avoid the obvious conflict between these two items, the latter undefs were wrapped in unary LLVM structs to distinguish them from the former undefs. Except this doesn't actually work -- LLVM, not unreasonably, treats the "wrapped undef" as a regular undef. So this commit just sets all fields to null in the null pointer case of a nullable pointer enum static, because the other fields don't really need to be undef in the first place.
-
由 Alex Crichton 提交于
The llvm.copysign and llvm.round intrinsics weren't added until LLVM 3.4, so if we're on LLVM 3.3 we lower these to calls in libm instead of LLVM intrinsics. This should fix our travis failures.
-
由 bors 提交于
-
由 Daniel Micay 提交于
The `cmp::min` and `cmp::max` functions are not correct with partially ordered values. #12712
-
由 Daniel Micay 提交于
-
由 bors 提交于
Fixes #10877 There was another PR which attempted to fix this in the parser (#11804) and which was closed due to inactivity. This PR modifies typeck instead (as suggested in #11804), which indeed seems to be simpler than modifying the parser and allows for a better error message.
-
由 Dmitry Promsky 提交于
Closes #10877
-
由 bors 提交于
- Moves mtwt hygiene code into its own file - Fixes FIXME's which leads to ~2x speed gain in expansion pass - It is now @-free
-
由 bors 提交于
Just realized that these were quite outdated and quickly fixed it. I have to admit that I did not run the test suite on this one though…
-
由 Alex Crichton 提交于
When the timer_helper thread exited, it would attempt to re-acquire the global task count mutex, but the mutex had previously been deallocated, leading to undefined behavior of the mutex, and in some cases deadlock. Another mutex is used to coordinate shutting down the timer helper thread. Closes #12699
-
由 Alex Crichton 提交于
Using nanosleep() allows us to gracefully recover from EINTR because on error it fills in the second parameter with the remaining time to sleep. Closes #12689
-
由 Alex Crichton 提交于
This function is not threadsafe, and is deprecated in favor of the threadsafe readdir_r variant. Closes #12692
-