| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
libuv does not always catch SIGPIPE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Embed an iterator in the CharSplitIterator struct, and combine that with
the former bool `only_ascii`; so use an enum instead.
|
|
Long-standing branch to remove foreign function wrappers altogether. Calls to C functions are done "in place" with no stack manipulation; the scheme relies entirely on the correct use of `#[fixed_stack_segment]` to guarantee adequate stack space. A linter is added to detect when `#[fixed_stack_segment]` annotations are missing. An `externfn!` macro is added to make it easier to declare foreign fns and wrappers in one go: this macro may need some refinement, though, for example it might be good to be able to declare a group of foreign fns. I leave that for future work (hopefully somebody else's work :) ).
Fixes #3678.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Let CharIterator be a separate type from CharOffsetIterator (so that
CharIterator can be cloned, for example).
Implement CharOffsetIterator by using the same technique as the method
subslice_offset.
|
|
Add a function like raw::slice_bytes, but it doesn't check slice
boundaries. For iterator use where we always know the begin, end indices
are in range.
|
|
Implement char_range_at_reverse similarly to char_range_at, instead of
re-using that method.
|
|
|
|
|
|
See discussion in #8489, but this selects option 3 by adding a `Default` trait to be implemented by various basic types.
Once this makes it into a snapshot I think it's about time to start overhauling all current use-cases of `fmt!` to move towards `ifmt!`. The goal is to replace `%X` with `{}` in 90% of situations, and this commit should enable that.
|
|
|
|
Add size_hint() to a few Iterators that were missing it.
Update a couple of existing size_hint()s to use checked_add() instead of
saturating_add() for the upper bound.
|
|
|
|
@brson grilled me about how this bugfix worked the first time around, and it occurred to me that it didn't in the case where the task is unwinding. Now it will.
|
|
It's an empty stub and as one of the comments notes, doesn't belong in
libstd.
|
|
Rename task::yield() to task::deschedule().
Fixes #8494.
|
|
Address issue #5257, for example these values all had the same hash value:
("aaa", "bbb", "ccc")
("aaab", "bb", "ccc")
("aaabbb", "", "ccc")
IterBytes for &[A] now includes the length, before calling iter_bytes on
each element.
IterBytes for &str is now terminated by a byte that does not appear in
UTF-8. This way only one more byte is processed when hashing strings.
|
|
Fixes #8359.
|
|
Add a testcase that verifies that (s, t) and (u, v) don't collide even if
s + t == u + v (concatenation).
|
|
|
|
Address issue #5257, for example these values all had the same hash value:
("aaa", "bbb", "ccc")
("aaab", "bb", "ccc")
("aaabbb", "", "ccc")
IterBytes for &[A] now includes the length, before calling iter_bytes on
each element.
IterBytes for &str is now terminated by a byte that does not appear in
UTF-8. This way only one more byte is processed when hashing strings.
|
|
I need `Clone` for `Tm` for my latest work on [rust-http](https://github.com/chris-morgan/rust-http) (static typing for headers, and headers like `Date` are a time), so here it is.
@huonw recommended deriving DeepClone while I was at it.
I also had to implement `DeepClone` for `~str` to get a derived implementation of `DeepClone` for `Tm`; I did `@str` while I was at it, for consistency.
|
|
(This doesn't add/remove `u`s or change `ize` to `ise`, or anything like that.)
|
|
|
|
Just deleting more stuff.
|
|
|
|
updated, a minor amount of support type restructing has happened, methods have been reordered, and some duplicate code has been purged.
|
|
PausibleIdleCallback and placed the appropriate signatures in rtio and implementation into uvio.
|
|
Full description in comments.
|
|
|
|
from nondeterministic deadlock and also pending scheduler messages on scheduler shutdown.
|
|
By using a separate trait this is overridable on a per-type basis and makes room
for the possibility of even more arguments passed in for the future.
|
|
|
|
Rename task::yield() to task::deschedule().
Fixes #8494.
|
|
|
|
Fixes #8359.
|
|
This allows the internal implementation details of the TLS keys to be
changed without requiring the update of all the users. (Or, applying
changes that *have* to be applied for the keys to work correctly, e.g.
forcing LLVM to not merge these constants.)
|