Commit Graph

3149 Commits

Author SHA1 Message Date
blake2-ppc 913d1b48ad rt::io: Rename Bytes to ByteIterator and add note about iteration 2013-09-03 20:06:45 +02:00
blake2-ppc 61026ae621 rt::io: Add Bytes iterator for Reader
An iterator that simply calls `.read_bytes()` each iteration.

I think choosing to own the Reader value and implementing Decorator to
allow extracting it is the most generically useful. The Reader type
variable can of course be some kind of reference type that implements
Reader.
2013-09-02 03:12:32 +02:00
bors 7c5398b612 auto merge of #8276 : kballard/rust/iterator-protocol, r=cmr
r? @thestinger
2013-09-01 07:00:44 -07:00
bors 04fac7f90d auto merge of #8899 : thestinger/rust/repr, r=huonw 2013-08-31 15:15:40 -07:00
Daniel Micay 6655b3c462 repr: remove trailing {} from unit-like structs 2013-08-31 03:54:15 -04:00
Daniel Micay 874611b348 repr: print the name of structs 2013-08-31 03:54:13 -04:00
bors bb35e23f1c auto merge of #8896 : lightcatcher/rust/default_eq_fix, r=thestinger
Summary:
-removed "ne" methods in libstd and librustpkg
-made default "ne" be inlined
-made one of the "eq" methods in librustpkg follow more standard parameter naming convention
2013-08-30 21:40:32 -07:00
Eric Martin ed2217d7b6 Now inline default 'ne' methods 2013-08-30 22:02:24 -04:00
Eric Martin babe20f018 remove several 'ne' methods 2013-08-30 21:53:25 -04:00
bors 29449e355a auto merge of #8889 : erickt/rust/cleanup, r=catamorphism
This fixes a couple minor things I've been sitting on. It cleans up some warnings, CapCases some types in librustc's rscope module, and adds a fixme.
2013-08-30 17:20:36 -07:00
Tim Chevalier 34ed4e26a2 std: Add a file-renaming function to std::os 2013-08-30 15:48:37 -07:00
Erick Tryzelaar 9730ed9b02 std: Add a fixme for when we add Trait::<for T>::static_method() 2013-08-30 15:10:55 -07:00
Erick Tryzelaar 91d6c60bed fix various warnings 2013-08-30 15:10:55 -07:00
bors 0553618e08 auto merge of #8858 : blake2-ppc/rust/small-bugs, r=alexcrichton
Fix a bug in `s.slice_chars(a, b)` that did not accept `a == s.len()`.

Fix a bug in `!=` defined for DList.

Also simplify NormalizationIterator to use the CharIterator directly instead of mimicing the iteration itself.
2013-08-30 11:00:43 -07:00
bors 7077aefb10 auto merge of #8877 : bouk/rust/master, r=sanxiyn
Ran into a missing space in the stdlib source
2013-08-30 09:45:39 -07:00
bors 0ac3e023d8 auto merge of #8867 : thestinger/rust/smaller-arc, r=alexcrichton 2013-08-30 05:45:45 -07:00
bors 1f9bd62fd6 auto merge of #8857 : blake2-ppc/rust/std-str-remove, r=thestinger
These are very easy to replace with methods on string slices, basically
`.char_len()` and `.len()`.

These are the replacement implementations I did to clean these
functions up, but seeing this I propose removal:

/// ...
pub fn count_chars(s: &str, begin: uint, end: uint) -> uint {
    // .slice() checks the char boundaries
    s.slice(begin, end).char_len()
}

/// Counts the number of bytes taken by the first `n` chars in `s`
/// starting from byte index `begin`.
///
/// Fails if there are less than `n` chars past `begin`
pub fn count_bytes<'b>(s: &'b str, begin: uint, n: uint) -> uint {
    s.slice_from(begin).slice_chars(0, n).len()
}
2013-08-30 04:40:47 -07:00
Bouke van der Bijl a2ffceaedd Add missing space 2013-08-30 12:53:05 +02:00
bors 72bf895629 auto merge of #8854 : huonw/rust/rt-papercuts, r=brson
The only user-facing change is handling non-integer (and zero) `RUST_THREADS` more nicely:

```
$ RUST_THREADS=x rustc # old

You've met with a terrible fate, haven't you?

fatal runtime error: runtime tls key not initialized
Aborted
$ RUST_THREADS=x ./x86_64-unknown-linux-gnu/stage2/bin/rustc # new

You've met with a terrible fate, haven't you?

fatal runtime error: `RUST_THREADS` is `x`, should be a positive integer
Aborted
```

The other changes are converting some `for .. in range(x,y)` to `vec::from_fn` or `for .. in x.iter()` as appropriate; and removing a chain of (seemingly) unnecessary pointer casts.

(Also, fixes a typo in `extra::test` from #8823.)
2013-08-30 03:30:43 -07:00
bors f94844c558 auto merge of #8820 : alexcrichton/rust/no-io-writer, r=brson
At the same time, this updates the TyVisitor to use a mutable self because it's
probably going to be mutating state as it goes along anyway.
2013-08-30 01:20:44 -07:00
Kevin Ballard a3d18bc95b Make Zip iterator short-circuit
Python's zip() short-circuits by not even querying its right-hand
iterator if the left-hand one is done. Match that behavior here by not
calling .next() on the right iterator if the left one returns None.
2013-08-29 22:49:26 -07:00
Kevin Ballard fb0b388804 Make the iterator protocol more explicit
Document the fact that the iterator protocol only defines behavior up
until the first None is returned. After this point, iterators are free
to behave how they wish.

Add a new iterator adaptor Fuse<T> that modifies iterators to return
None forever if they returned None once.
2013-08-29 22:49:26 -07:00
bors ed422b8872 auto merge of #8819 : vadimcn/rust/unit-tests, r=brson
Some of the tests are failing.  I've only managed to fix 'memory_map_file', the rest are up for grabs...

Fixes #5261.
2013-08-29 20:40:47 -07:00
Daniel Micay 05bb4c4e1b reduce the size of UnsafeArc from 2 words to 1 2013-08-29 20:29:02 -04:00
Brian Anderson 3c5a43e5b6 Revert "auto merge of #8645 : alexcrichton/rust/issue-6436-run-non-blocking, r=brson"
This reverts commit b8d1fa3994, reversing
changes made to f22b4b1698.

Conflicts:
	mk/rt.mk
	src/libuv
2013-08-29 14:23:44 -07:00
bors a6835dd3cb auto merge of #8842 : jfager/rust/remove-iter-module, r=pnkfelix
Moves the Times trait to num while the question of whether it should
exist at all gets hashed out as a completely separate question.
2013-08-29 11:10:47 -07:00
blake2-ppc 479aefb670 std::str: Fix bug in .slice_chars()
`s.slice_chars(a, b)` did not allow the case where `a == s.len()`, this
is a bug I introduced last time I touched the method; add a test for
this case.
2013-08-29 17:11:11 +02:00
blake2-ppc d8801ceabc std::str: Use CharIterator in NormalizationIterator
Just to simplify and not have the iteration logic repeated in multiple places.
2013-08-29 17:11:11 +02:00
blake2-ppc b656bfaaa9 std::str: Remove functions count_chars, count_bytes
These are very easy to replace with methods on string slices, basically
`.char_len()` and `.len()`.

These are the replacement implementations I did to clean these
functions up, but seeing this I propose removal:

/// ...
pub fn count_chars(s: &str, begin: uint, end: uint) -> uint {
    // .slice() checks the char boundaries
    s.slice(begin, end).char_len()
}

/// Counts the number of bytes taken by the first `n` chars in `s`
/// starting from byte index `begin`.
///
/// Fails if there are less than `n` chars past `begin`
pub fn count_bytes<'b>(s: &'b str, begin: uint, n: uint) -> uint {
    s.slice_from(begin).slice_chars(0, n).len()
}
2013-08-29 15:51:39 +02:00
Huon Wilson e835c6b042 rt: remove a series of unfortunate casts. 2013-08-29 22:55:59 +10:00
Huon Wilson 440f1e2dad rt: use sugary functions rather than manual range loops. 2013-08-29 22:55:59 +10:00
Huon Wilson 54e7bdc48e rt: Handle non-integer RUST_THREADS (slightly) more gracefully.
Previously it would call Option.unwrap(), which calls `fail!` on None,
which doesn't work without the runtime (e.g. when initialising it).
2013-08-29 22:55:59 +10:00
Alex Crichton 97f61e7bbe Remove @io::Writer from sys/repr/reflect
At the same time, this updates the TyVisitor to use a mutable self because it's
probably going to be mutating state as it goes along anyway.
2013-08-28 23:00:46 -07:00
Jason Fager dc30005ad8 Remove the iter module.
Moves the Times trait to num while the question of whether it should
exist at all gets hashed out as a completely separate question.
2013-08-29 01:27:24 -04:00
bors da96b3ec6a auto merge of #8447 : alexcrichton/rust/local-data-merge, r=brson
This moves all local_data stuff into the `local_data` module and only that
module alone. It also removes a fair amount of "super-unsafe" code in favor of
just vanilla code generated by the compiler at the same time.

Closes #8113
2013-08-28 14:15:37 -07:00
bors 64ed3721f7 auto merge of #8807 : alexcrichton/rust/remove-two-offsets, r=thestinger
Everything that we do is actually inbounds, so there's no reason for us to be exposing two of these functions
2013-08-28 11:00:41 -07:00
Vadim Chugunov 653825889e Turned off libstd unit tests that currently fail on Windows. 2013-08-28 01:44:25 -07:00
Vadim Chugunov 6828428cad Disabled failing parts of abs_sub() and frexp() unit tests on Windows. 2013-08-28 01:44:12 -07:00
Vadim Chugunov 99345d8d17 Fixed MemoryMap on Windows. 2013-08-28 01:44:12 -07:00
Alex Crichton e3662b1880 Remove offset_inbounds for an unsafe offset function 2013-08-27 23:22:52 -07:00
bors 78c5f97a09 auto merge of #8805 : jfager/rust/remove-hashutil, r=alexcrichton 2013-08-27 23:05:35 -07:00
Alex Crichton 06a7195e9e Consolidate local_data implementations, and cleanup
This moves all local_data stuff into the `local_data` module and only that
module alone. It also removes a fair amount of "super-unsafe" code in favor of
just vanilla code generated by the compiler at the same time.

Closes #8113
2013-08-27 21:29:11 -07:00
Alex Crichton 4635644746 Fix merge fallout 2013-08-27 20:53:26 -07:00
Alex Crichton b89e1c000e Implement process bindings to libuv
Closes #6436
2013-08-27 20:46:43 -07:00
Alex Crichton ed204257a0 Upgrade libuv to the current master + our patches
There were two main differences with the old libuv and the master version:

1. The uv_last_error function is now gone. The error code returned by each
   function is the "last error" so now a UvError is just a wrapper around a
   c_int.
2. The repo no longer includes a makefile, and the build system has change.
   According to the build directions on joyent/libuv, this now downloads a `gyp`
   program into the `libuv/build` directory and builds using that. This
   shouldn't add any dependences on autotools or anything like that.

Closes #8407
Closes #6567
Closes #6315
2013-08-27 20:46:17 -07:00
Patrick Walton aac9d6eee9 librustc: Fix merge fallout 2013-08-27 19:09:27 -07:00
Patrick Walton 2bd46e767c librustc: Fix problem with cross-crate reexported static methods. 2013-08-27 18:47:59 -07:00
Patrick Walton 1ad2239f62 libstd: Fix merge fallout. 2013-08-27 18:47:58 -07:00
Patrick Walton d9bb78efdf librustc: Stop calling each_path in coherence.
10% win or so for small crates.
2013-08-27 18:47:58 -07:00
Patrick Walton 4f32a2d854 librustc: Fix merge fallout. 2013-08-27 18:47:57 -07:00