Daniel Micay
90f1db10fa
remove headers from exchange allocations
2013-07-08 04:54:41 -04:00
Daniel Micay
44770ae3a8
Merge pull request #7595 from thestinger/iterator
...
remove some method resolve workarounds
2013-07-08 01:42:07 -07:00
Daniel Micay
0aedecf96b
add a temporary vector_exchange_malloc lang item
2013-07-08 03:41:21 -04:00
Daniel Micay
7bf34c3437
vec: make vec_reserve_shared_actual private
2013-07-08 03:41:21 -04:00
Fedor Indutny
4a868c7c1d
libc: add errno values
2013-07-08 10:36:43 +04:00
Fedor Indutny
822dc5f1f6
libc: VirtualAlloc and FileMapping bindings
2013-07-08 10:36:43 +04:00
Fedor Indutny
1c56046d51
libc: add _SC_* consts for non-mips linux too
...
They was previously missing
2013-07-08 10:36:43 +04:00
Fedor Indutny
6e67701ca8
libc: fix MAP_ANON value on linux
2013-07-08 10:36:43 +04:00
bors
96ae000812
auto merge of #7497 : alexcrichton/rust/issue-7394, r=huonw
2013-07-07 21:34:51 -07:00
Daniel Micay
641aec7407
remove some method resolve workarounds
2013-07-07 19:51:13 -04:00
Andrew Paseltiner
7bb4ff6267
iterator: Add IteratorUtil::peek_
method
2013-07-07 19:29:37 -04:00
bors
ddf8247d7f
auto merge of #7629 : thestinger/rust/rope, r=graydon
...
It's broken/unmaintained and needs to be rewritten to avoid managed
pointers and needless copies. A full rewrite is necessary and the API
will need to be redone so it's not worth keeping this around (#7628 ).
Closes #2236 , #2744
2013-07-07 15:20:01 -07:00
bors
3c44265d87
auto merge of #7602 : blake2-ppc/rust/vec-pop-opt, r=cmr
...
Implement methods `.pop_opt() -> Option<T>` and `.shift_opt() -> Option<T>` to allow retrieval of front/back of a vec in one operation without fail. .pop() and .shift() are changed to reuse the former two methods.
Follows the naming of the previous method .head_opt()
2013-07-07 09:35:04 -07:00
bors
a9f178c148
auto merge of #7570 : kballard/rust/iterator-size-hint, r=thestinger
...
Change the signature of Iterator.size_hint() to always have a lower bound.
Implement .size_hint() on all remaining iterators (if it differs from the default).
2013-07-06 14:59:09 -07:00
Daniel Micay
01833de7ea
remove extra::rope
...
It's broken/unmaintained and needs to be rewritten to avoid managed
pointers and needless copies. A full rewrite is necessary and the API
will need to be redone so it's not worth keeping this around.
Closes #2236 , #2744
2013-07-06 17:06:30 -04:00
bors
3e933b199c
auto merge of #7194 : jensnockert/rust/endian, r=cmr
...
They simply byte-swap an integer to a specific endian, like the hton* functions in C.
These intrinsics are synthesized, so maybe they should be in another file. But since they are just a single line of code each, based on the bswap intrinsics and aren't really intended for public consumption I thought they would fit in the intrinsics file.
The next step working on this could be to expose a trait / generic function for byteswapping.
2013-07-06 08:32:10 -07:00
Gary Linscott
52949fbf18
Faster check for ascii-space
...
Since ' ' is by far one of the most common characters, it is worthwhile
to put it first, and short-circuit the rest of the function.
On the same JSON benchmark, as the json_perf improvement, reading example.json
10 times from https://code.google.com/p/rapidjson/wiki/Performance .
Before: 0.16s
After: 0.11s
2013-07-06 01:54:29 -04:00
Daniel Micay
51eb1e14d4
str: stop encoding invalid out-of-range char
2013-07-05 21:07:37 -04:00
blake2-ppc
fc17d4371f
vec: Add .shift_opt() -> Option<T>
...
Add a function to safely retrieve the first element of a ~[T], as
Option<T>. Implement shift() using shift_opt().
Add tests for both .shift() and .shift_opt()
2013-07-05 20:32:25 +02:00
blake2-ppc
d805b832f5
vec: Add .pop_opt() -> Option<T>
...
Add a function to safely retrieve the last element of a ~[T], as
Option<T>. Implement pop() using pop_opt(); it benches the same as the
old implementation when tested with optimization level 2.
2013-07-05 20:32:25 +02:00
Kevin Ballard
20016b92c8
Implement .size_hint() on the remaining Iterator adaptors
...
Every iterator adaptor now has an implementation of .size_hint() that
makes sense, except for when the default of (0, None) is correct.
2013-07-05 01:56:48 -07:00
Kevin Ballard
dc9b3ff1b3
Change signature of Iterator.size_hint
...
Remove the Option wrapper around the lower bound. None is semantically
the same as Size(0), so there's no point in having a distinction.
2013-07-05 01:56:48 -07:00
bors
e89dcb887b
auto merge of #7549 : sfackler/rust/docs, r=msullivan
...
I'm leaving the Sized kind undocumented since it isn't fully implemented
yet.
2013-07-04 19:01:54 -07:00
Daniel Micay
dd4f6bb2a2
Merge pull request #7565 from Blei/fix-rev-size-hint
...
vec: Fix size_hint() of reverse iterators
2013-07-03 22:07:20 -07:00
Alex Crichton
fe4a15886c
Fail when a vec::reserve is too large
2013-07-03 20:59:34 -07:00
Brian Anderson
1098d6980b
Merge remote-tracking branch 'mozilla/master'
...
Conflicts:
src/libextra/test.rs
src/libstd/at_vec.rs
src/libstd/cleanup.rs
src/libstd/rt/comm.rs
src/libstd/rt/global_heap.rs
src/libstd/task/spawn.rs
src/libstd/unstable/lang.rs
src/libstd/vec.rs
src/rt/rustrt.def.in
src/test/run-pass/extern-pub.rs
2013-07-03 14:49:13 -07:00
Huon Wilson
cdea73cf5b
Convert vec::{as_imm_buf, as_mut_buf} to methods.
2013-07-04 00:46:50 +10:00
Huon Wilson
a732a2daff
Convert vec::windowed to an external iterator, and add an n-at-a-time chunk iterator.
2013-07-04 00:46:50 +10:00
Huon Wilson
944d904ad4
Convert vec::{split, splitn, rsplit, rsplitn} to external iterators.
2013-07-04 00:46:50 +10:00
Huon Wilson
f19fb2459f
Remove standalone comparison functions in vec, make the trait impls better.
2013-07-04 00:46:50 +10:00
Huon Wilson
9207802589
Remove vec::reversed, replaced by iterators.
2013-07-04 00:46:50 +10:00
Huon Wilson
de0d696561
Remove vec::{filter, filtered, filter_map, filter_mapped}, replaced by iterators.
2013-07-04 00:46:49 +10:00
Huon Wilson
eee6775642
Implement consuming iterators for ~[], remove vec::{consume, consume_reverse, map_consume}.
2013-07-04 00:46:49 +10:00
Philipp Brüschweiler
6ee8fee730
vec: Fix size_hint() of reverse iterators
...
Fixes #7558
2013-07-03 14:56:26 +02:00
bors
55f155521d
auto merge of #7523 : huonw/rust/uppercase-statics-lint, r=cmr
...
Adds a lint for `static some_lowercase_name: uint = 1;`. Warning by default since it causes confusion, e.g. `static a: uint = 1; ... let a = 2;` => `error: only refutable patterns allowed here`.
2013-07-03 04:31:50 -07:00
bors
ea31b9cca1
auto merge of #7474 : Seldaek/rust/clean-iter, r=thestinger
...
I think it's WIP - but I wanted to ask for feedback (/cc @thestinger)
I had to move the impl of FromIter for vec into extra::iter because I don't think std can depend on extra, but that's a bit messed up. Similarly some FromIter uses are gone now, not sure if this is fixable or if I made a complete mess here..
2013-07-03 01:07:55 -07:00
Eric Reed
b60cf0c5b0
converted TODOs into XXXs
2013-07-02 17:27:46 -07:00
Eric Reed
6a1a7819c9
Merge remote-tracking branch 'upstream/io' into io
...
Conflicts:
src/libstd/rt/test.rs
src/rt/rustrt.def.in
2013-07-02 16:55:56 -07:00
Eric Reed
e6c57793be
IPv6 support for UDP and TCP.
2013-07-02 16:40:57 -07:00
Brian Anderson
f8a4d09f7e
std: Use the same task failure message as C++ rt
2013-07-02 16:04:45 -07:00
toddaaro
0607178280
A missing ! made it so that the testcase schedule_home_states was throwing spurious assert failures. Why this did not result in the test case failing previously is beyond me.
2013-07-02 11:44:51 -07:00
Steven Fackler
3e265e7842
Small documentation changes
...
I'm leaving the Sized kind undocumented since it isn't fully implemented
yet.
2013-07-01 23:37:11 -07:00
toddaaro
27818ea7c4
removed unnecessary import that slipped in during merge
2013-07-01 16:51:59 -07:00
toddaaro
062bfd310a
merging task/coroutine refactoring back into upstream
2013-07-01 16:41:17 -07:00
toddaaro
5cfad4b6de
Refactored the runtime to view coroutines as a component of tasks, instead of tasks as a component of coroutines.
2013-07-01 16:14:56 -07:00
bors
d324014c6c
auto merge of #7521 : thestinger/rust/vec, r=Aatch
...
continued from #7495
2013-07-01 02:26:46 -07:00
Huon Wilson
c437a16c5d
rustc: add a lint to enforce uppercase statics.
2013-07-01 17:52:57 +10:00
bors
07feeb95c5
auto merge of #7487 : huonw/rust/vec-kill, r=cmr
...
Continuation of #7430 .
I haven't removed the `map` method, since the replacement `v.iter().transform(f).collect::<~[SomeType]>()` is a little ridiculous at the moment.
2013-06-30 21:14:13 -07:00
Daniel Micay
5b40f2ae5b
pass exchange_malloc an alignment, not a tydesc
2013-06-30 23:30:40 -04:00
Daniel Micay
0d7799d304
global_heap: inline get_box_size and align_to
2013-06-30 22:41:51 -04:00
Daniel Micay
b731d96b4f
vec: implement exchange vector reserve in Rust
2013-06-30 22:30:37 -04:00
Daniel Micay
80ab877841
global_heap: inline malloc_raw and add realloc_raw
2013-06-30 22:22:52 -04:00
bors
1c48aac9aa
auto merge of #7517 : brson/rust/0.7, r=brson
2013-06-30 17:34:58 -07:00
Jordi Boggiano
3fe05a987c
Move most iter functionality to extra, fixes #7343
2013-07-01 01:50:40 +02:00
Brian Anderson
a766a955a9
Bump version from 0.7-pre to 0.7
2013-06-30 16:36:48 -07:00
bors
040ac2a932
auto merge of #7495 : thestinger/rust/exchange, r=cmr
...
With these changes, exchange allocator headers are never initialized, read or written to. Removing the header will now just involve updating the code in trans using an offset to only do it if the type contained is managed.
The only thing blocking removing the initialization of the last field in the header was ~fn since it uses it to store the dynamic size/types due to captures. I temporarily switched it to a `closure_exchange_alloc` lang item (it uses the same `exchange_free`) and #7496 is filed about removing that.
Since the `exchange_free` call is now inlined all over the codebase, I don't think we should have an assert for null. It doesn't currently ever happen, but it would be fine if we started generating code that did do it. The `exchange_free` function also had a comment declaring that it must not fail, but a regular assert would cause a failure. I also removed the atomic counter because valgrind can already find these leaks, and we have valgrind bots now.
Note that exchange free does not currently print an error an out-of-memory when it aborts, because our `io` code may allocate. We could probably get away with a `#[rust_stack]` call to a `stdio` function but it would be better to make a write system call.
2013-06-30 15:02:05 -07:00
Daniel Micay
4a29d6eb3f
add a closure_exchange_malloc lang item
...
this makes the exchange allocation header completely unused, and leaves
it uninitialized
2013-06-30 16:24:47 -04:00
Daniel Micay
7f3752c7f9
managed: rm RC_EXCHANGE_UNIQUE constant
...
this is no longer used, exchange allocations do not set ref_count
2013-06-30 16:22:58 -04:00
Daniel Micay
408eef0d89
stop initializing ref_count in exchange_alloc
...
this is never read anymore
2013-06-30 16:22:55 -04:00
Alex Crichton
d3155faede
Specialize to_str_common for floats/integers in strconv
...
This allows the integral paths to avoid allocations on the heap
Closes #4424 , #4423
2013-06-30 09:19:25 -07:00
Alex Crichton
8fe6fc11de
Change char::escape_{default,unicode} to take callbacks instead of allocating
...
strings
2013-06-30 09:19:02 -07:00
Huon Wilson
c0a20d2929
Remove vec::{map, mapi, zip_map} and the methods, except for .map, since this
...
is very common, and the replacement (.iter().transform().collect()) is very
ugly.
2013-06-30 21:59:44 +10:00
Huon Wilson
a396e1e2e9
Convert vec::{grow, grow_fn, grow_set} to methods.
2013-06-30 21:17:47 +10:00
Huon Wilson
2eea642c30
Convert vec::dedup to a method.
2013-06-30 21:17:09 +10:00
Huon Wilson
faa8f8ff8b
Convert vec::{bsearch, bsearch_elem} to methods.
2013-06-30 21:15:25 +10:00
Huon Wilson
562dea1820
etc: update etc/unicode.py for the changes made to std::unicode.
2013-06-30 21:15:25 +10:00
Huon Wilson
9e83b2fe55
Convert vec::{reverse, swap} to methods.
2013-06-30 21:15:25 +10:00
Huon Wilson
a890c2cbf1
Convert vec::{rposition, rposition_elem, position_elem, contains} to methods.
2013-06-30 21:15:24 +10:00
Huon Wilson
45940ed988
Remove vec::[r]position_between, replaced by slices & iterators.
2013-06-30 21:06:48 +10:00
Huon Wilson
5d46bcc0e4
Remove vec::{rfind, rfind_between, find_between}, replaced by slices and iterator adapators.
2013-06-30 21:06:47 +10:00
Daniel Micay
350a5c0b72
vec: use contains_managed instead of box header
2013-06-30 03:45:39 -04:00
Daniel Micay
b91416214e
add a contains_managed intrinsic
2013-06-30 03:45:39 -04:00
Daniel Micay
b883d6a54c
simplify the exchange allocator
...
* stop using an atomic counter, this has a significant cost and
valgrind will already catch these leaks
* remove the extra layer of function calls
* remove the assert of non-null in free, freeing null is well defined
but throwing a failure from free will not be
* stop initializing the `prev`/`next` pointers
* abort on out-of-memory, failing won't necessarily work
2013-06-30 03:45:36 -04:00
bors
b4bb36490d
auto merge of #7490 : mozilla/rust/rollup, r=thestinger
...
603137c r=cmr
fe10db2 r=bstrie
2013-06-29 23:34:43 -07:00
Alex Crichton
208eb0f8cb
Implement map_mut
on the Option type
...
Closes #7394
2013-06-29 22:21:37 -07:00
bors
c6b0d4f516
auto merge of #7475 : Seldaek/rust/fixsplit, r=cmr
...
I almost got locked out of my machine because I misunderstood the purpose of the function and called it with a limit of uint::max_value, which turned this function into an almost endless loop.
2013-06-29 21:13:31 -07:00
Daniel Micay
052f28a808
minor vec cleanup
...
* hide the rustrt module in the docs
* remove the useless `traits` module wrapping the `Add` impl
2013-06-29 17:37:03 -04:00
Daniel Micay
d820355213
fix code block syntax in two docstrings
2013-06-29 17:33:18 -04:00
bors
439b13f071
auto merge of #7449 : yichoi/rust/std_test, r=cmr
...
adjust run.rs test for android to pass check std
2013-06-29 14:31:41 -07:00
Alex Crichton
b29c368674
Removing a lot of usage of '&const'
2013-06-29 08:35:48 -07:00
Ben Blum
ff4ab9e147
'Borrow' stack closures rather than copying them (e.g., "|x|f(x)"), in prep for making them noncopyable.
2013-06-29 04:39:34 -04:00
Ben Blum
5784c0912f
Change taskgroup key type to fn:Copy in prep for noncopyable stack closures.
2013-06-29 03:58:50 -04:00
bors
4e78c1e2a8
auto merge of #7479 : mozilla/rust/rollup, r=thestinger
...
22b7eb3
r=thestinger
28a3613
r=cmr
a0c31ec
r=bstrie
ee7307e
r=thestinger
b9cf6a3
r=thestinger
2013-06-28 22:25:48 -07:00
blake2-ppc
b9cf6a33d2
iterator: UnfoldrIterator::new should have function argument last
...
To match Rust conventions and enable use of `do` etc, make sure the
closure is the last argument to the `new` method.
2013-06-29 01:03:37 -04:00
Brian Anderson
22b7eb3802
Rename #[mutable] to #[no_freeze]
2013-06-29 00:56:36 -04:00
Jordi Boggiano
647b4a6bcd
Optimize str::each_split_within when it is called with large limits
2013-06-29 04:53:52 +02:00
Michael Sullivan
a9e51f5f70
Make default method handling not choke on self region params. Closes #7341 .
2013-06-28 16:12:08 -07:00
Corey Richardson
d600601162
Add each_parent to WindowsPath
2013-06-28 10:47:59 -04:00
Patrick Walton
10bcb60e8f
librustc: Fix even *MORE* merge fallout!
2013-06-28 10:47:59 -04:00
Patrick Walton
f6a27cbda2
libextra: Fix even more merge fallout.
2013-06-28 10:47:56 -04:00
Patrick Walton
bb830558d1
librustc: Fix merge fallout and test cases.
2013-06-28 10:44:17 -04:00
Patrick Walton
e015bee286
Rewrite each_path to allow performance improvements in the future.
...
Instead of determining paths from the path tag, we iterate through
modules' children recursively in the metadata. This will allow for
lazy external module resolution.
2013-06-28 10:44:16 -04:00
Patrick Walton
89eb995195
librustc: Fix merge fallout.
2013-06-28 10:44:16 -04:00
Patrick Walton
03ab6351cc
librustc: Rewrite reachability and forbid duplicate methods in type implementations.
...
This should allow fewer symbols to be exported.
2013-06-28 10:44:16 -04:00
Patrick Walton
a1531ed946
librustc: Remove the broken overloaded assign-ops from the language.
...
They evaluated the receiver twice. They should be added back with
`AddAssign`, `SubAssign`, etc., traits.
2013-06-28 10:44:16 -04:00
Patrick Walton
8cd40f9032
libstd: Fix merge fallout.
2013-06-28 10:44:15 -04:00
Patrick Walton
f9b54541ee
librustc: Disallow "mut" from distributing over bindings.
...
This is the backwards-incompatible part of per-binding-site "mut".
2013-06-28 10:44:15 -04:00
Patrick Walton
1c0aa78481
librustc: Change "Owned" to "Send" everywhere
2013-06-28 10:44:15 -04:00
Patrick Walton
1eec3bba13
librustc: Rename Const to Freeze
2013-06-28 10:44:15 -04:00
Patrick Walton
d350981c0e
librustc: Change Const to Freeze in the compiler
2013-06-28 10:44:15 -04:00
Patrick Walton
607b91d5f9
librustc: Rename Owned to Send in the compiler
2013-06-28 10:44:07 -04:00
bors
811e045c60
auto merge of #7426 : thestinger/rust/zero-size-noncopyable, r=catamorphism
...
4885918 r=huonw
42a63fc r=thestinger
7ec5a08 r=catamorphism
fb1e5f1 r=thestinger
659cd55
r=cmr
2013-06-28 05:28:32 -07:00
Young-il Choi
9b95b6d210
std: adjust run.rs test for android
2013-06-28 19:02:39 +09:00
bors
887ae82382
auto merge of #7397 : catamorphism/rust/rustpkg_path, r=catamorphism
...
r? @brson Unfortunately, the main test for this is ignored due to #7071 .
Closes #5682
2013-06-28 02:58:34 -07:00
Tim Chevalier
ea62fd1090
rustpkg: Implement RUST_PATH
...
Unfortunately, the main test for this is ignored due to #7071 .
Closes #5682
2013-06-27 21:41:03 -07:00
Daniel Micay
c45af01351
fix stage0 build
2013-06-28 00:23:38 -04:00
Young-il Choi
6b2297d118
std: unused import fix for android
2013-06-27 23:21:40 -04:00
Birunthan Mohanathas
dcf1dc060a
Rename #[no_drop_flag] to #[unsafe_no_drop_flag]
2013-06-27 23:20:42 -04:00
Daniel Micay
779ee2a2dd
util: make NonCopyable 0 size (instead of 1 byte)
...
this also adds a derived Eq, TotalEq, Ord and TotalOrd along with
removing the useless constructor
2013-06-27 23:20:42 -04:00
bors
63afb8ccc8
auto merge of #7430 : huonw/rust/vec-kill, r=thestinger
2013-06-27 15:01:58 -07:00
bors
9b6dfb8578
auto merge of #7414 : gifnksm/rust/max_by, r=catamorphism
...
`max_by` method returns the element that gives the maximum value from the specfied function.
`max_by`/`min_by` are convenient when you want to get the value which has greatest/smallest scores.
Inspired by [ruby's Enumerable module](http://ruby-doc.org/core-2.0/Enumerable.html ).
2013-06-27 10:37:36 -07:00
Huon Wilson
366ca44cc8
std: silence some test warnings.
2013-06-28 01:45:24 +10:00
Huon Wilson
32d655916f
Convert vec::{reserve, reserve_at_least, capacity} to methods.
2013-06-28 00:40:47 +10:00
Huon Wilson
ae2f185349
Convert vec::{partition, partitioned} to methods.
2013-06-28 00:20:43 +10:00
Huon Wilson
206d4f00dc
Convert vec::retain to a method.
2013-06-28 00:20:42 +10:00
Huon Wilson
4470d14388
Convert vec::truncate to a method.
2013-06-28 00:20:42 +10:00
Huon Wilson
29b0649a6a
Convert vec::{push, push_all, push_all_move} to methods.
2013-06-28 00:20:42 +10:00
Huon Wilson
1cb0a567d1
Convert vec::{pop, shift, unshift, insert, remove, swap_remove} to methods.
2013-06-28 00:20:42 +10:00
Huon Wilson
d2e3e1e52b
Convert vec::{head, tail, init, last} (and similar fns) to methods.
2013-06-27 22:37:00 +10:00
Huon Wilson
d0512b1055
Convert vec::[mut_]slice to methods, remove vec::const_slice.
2013-06-27 22:36:09 +10:00
bors
a28f9ba526
auto merge of #7361 : brson/rust/incoming, r=brson
2013-06-27 01:04:33 -07:00
bors
f1e09d6f1f
auto merge of #7420 : mozilla/rust/rollup, r=thestinger
2013-06-26 23:07:41 -07:00
Brian Anderson
ddbccecc27
std::rt: Some cleanup
2013-06-26 17:00:42 -07:00
Daniel Micay
9f5f609b1c
vec: remove superseded reverse_part function
...
`reverse(xs.mut_slice(a, b))` replaces `reverse_part(xs, a, b)`
2013-06-26 19:42:34 -04:00
Ben Blum
12e09afd6d
Work-around 'static bound requirement in io::with_bytes_reader (note: does not fix #5723 , interface still unsafe)
2013-06-26 18:14:43 -04:00
Kevin Ballard
3df37326cf
Add methods .move_from() and .copy_from() to vec
...
Add method .move_from() to MutableVector, which consumes another vector
and moves elements into the receiver.
Add new trait MutableCloneableVector with one method .copy_from(), which
clones elements from another vector into the receiver.
2013-06-26 18:12:29 -04:00
Kevin Ballard
524a92c72f
Add method .set_memory in vec::bytes for &[u8]
...
Add new trait vec::bytes::MutableByteVector which currently defines one
method .set_memory().
2013-06-26 18:11:18 -04:00
gifnksm
8edb8f6d39
iterator: Add IteratorUtil::max_by/min_by
method
2013-06-27 06:55:22 +09:00
Eric Reed
42f3f069fa
changed NOTE to TODO
2013-06-26 13:48:49 -07:00
Eric Reed
ce97bd4c8b
cleaned up uv/net
2013-06-26 10:17:10 -07:00
bors
3433851a37
auto merge of #7345 : blake2-ppc/rust/iterator-flat-map, r=thestinger
...
flat_map_ produces an iterator that maps each element to an iterator,
and yields the elements of the produced iterators.
This is the monadic bind :: M a -> (a -> M b) -> M b for iterators.
Named just like the vec method, but with a trailing underline until the
method resolution bug is resolved.
We discussed the name chain_map, but I decided to go with flat_map_ for consistency with vec.
Since it.map(f).flatten() would be the same as it.flat_map(f), we could choose
to just implement a flatten method instead. Either way the possibilities are the same but flat_map is more convenient.
2013-06-26 09:47:16 -07:00
Eric Reed
87ecfb7435
converted TCP interface to newtype structs
2013-06-26 09:37:48 -07:00
Eric Reed
d0dc6970d8
removed unecessary method
2013-06-26 09:37:16 -07:00
bors
4ec05e02fa
auto merge of #7216 : kballard/rust/task_rng, r=brson
2013-06-26 03:08:04 -07:00
bors
09b4525f84
auto merge of #7113 : alexcrichton/rust/banned-warnings, r=cmr
...
Reopening of #7031 , Closes #6963
I imagine though that this will bounce in bors once or twice... Because attributes can't be cfg(stage0)'d off, there's temporarily a lot of new stage0/stage1+ code.
2013-06-26 00:56:04 -07:00
bors
22408d9ad5
auto merge of #7269 : luqmana/rust/drop, r=thestinger
...
Finally rename finalize to drop.
Closes #4332 .
2013-06-25 20:29:06 -07:00
Brian Anderson
5d3ca4b843
Merge remote-tracking branch 'mozilla/master' into incoming
...
Conflicts:
src/librustc/middle/astencode.rs
src/librustc/middle/check_const.rs
2013-06-25 19:32:00 -07:00
Luqman Aden
ca2966c6d0
Change finalize -> drop.
2013-06-25 21:14:39 -04:00
Alex Crichton
c109bed15b
Deny common lints by default for lib{std,extra}
2013-06-25 17:39:43 -07:00
Eric Reed
34b1135b59
Converted UdpSocket into a newtype struct and (dis)connecting uses move semantics rather than ~.
2013-06-25 17:05:59 -07:00
Eric Reed
f604686295
converted UvUdpSocket into a newtype struct
2013-06-25 17:04:28 -07:00
Eric Reed
c5b19f0bf9
changed outdated match on IpAddr
2013-06-25 16:04:09 -07:00
Eric Reed
d0c812f2a8
IPv6 struct
2013-06-25 16:03:24 -07:00
Eric Reed
2c5cfe1037
removed obsolete FIXMEs. formatting changes.
2013-06-25 16:02:51 -07:00
Eric Reed
f202713b73
satisfy the formatting check
2013-06-25 14:40:36 -07:00
Daniel Micay
e67c48a591
remove each
from vec, HashMap and HashSet
2013-06-25 16:28:02 -04:00
Daniel Micay
64ee9668a2
container: remove internal iterators from Map
...
the maps are being migrated to external iterators
2013-06-25 16:26:23 -04:00
Eric Reed
1af2016358
removed unncessary unsafe block that was stopping compliation.
2013-06-25 11:59:47 -07:00
Eric Reed
4870dce3eb
Merge remote-tracking branch 'upstream/io' into io
...
Conflicts:
src/rt/rustrt.def.in
2013-06-25 11:45:44 -07:00
Eric Reed
794923c995
UDP networking with tests
2013-06-25 11:43:40 -07:00
bors
032dcc57e8
auto merge of #7371 : alexcrichton/rust/trying, r=cmr
...
This is an attempt at a smaller request than #7113 , it's just the first two commits
2013-06-25 10:47:01 -07:00
Alex Crichton
42b44b21b1
Rename all files with the 'rc' extension
2013-06-25 08:55:15 -07:00
bors
d161e630d8
auto merge of #7317 : Aatch/rust/no-drop-flag, r=thestinger
...
This adds a `#[no_drop_flag]` attribute. This attribute tells the compiler to omit the drop flag from the struct, if it has a destructor. When the destructor is run, instead of setting the drop flag, it instead zeroes-out the struct. This means the destructor can run multiple times and therefore it is up to the developer to use it safely.
The primary usage case for this is smart-pointer types like `Rc<T>` as the extra flag caused the struct to be 1 word larger because of alignment.
This closes #7271 and #7138
2013-06-25 07:23:06 -07:00
bors
7aee5da08d
auto merge of #7254 : Blei/rust/intrinsic-overhaul, r=cmr
...
This sets the `get_tydesc()` return type correctly and removes the intrinsic module. See #3730 , #3475 .
Update: this now also removes the unused shape fields in tydescs.
2013-06-25 04:38:06 -07:00
bors
5a089c252e
auto merge of #7370 : Aatch/rust/snapshot, r=huonw
...
I also cleaned up the warnings.
2013-06-24 23:14:01 -07:00
James Miller
122f25dd5e
Add missing import to tests
2013-06-25 18:02:56 +12:00
James Miller
6ad31ffb53
Warning police
2013-06-25 17:13:52 +12:00
James Miller
caa50ce15d
Remove stage0 cfgs
2013-06-25 17:08:26 +12:00
James Miller
d9f6dd263c
Set #[no_drop_flag] on Rc<T> and AtomicOption. Add Test
2013-06-25 16:11:34 +12:00
Brian Anderson
e65d0cbabe
extra: Make test runner compatible with newsched
2013-06-24 17:07:03 -07:00
Brian Anderson
d071f51cdc
std::rt: deny(unused_unsafe)
2013-06-24 17:07:03 -07:00
Brian Anderson
b530ca1033
std: Make unlinking and task notification work with newsched
2013-06-24 17:07:03 -07:00
Brian Anderson
5e7c5d6c3d
std: Make box annihilator work with newsched
2013-06-24 17:07:03 -07:00
Brian Anderson
a09972db35
std: Move dynamic borrowck code from unstable::lang to rt::borrowck
2013-06-24 17:07:03 -07:00
Brian Anderson
aa9210d25a
std: Rewrite vec_reserve_shared_actual in Rust
2013-06-24 17:07:01 -07:00
Brian Anderson
ac9481a438
Merge remote-tracking branch 'reusee/master' into HEAD
2013-06-24 14:09:37 -07:00
Fedor Indutny
bc70edbb25
libc: (u)int => c_(u)int for consts
2013-06-24 21:06:51 +02:00
Fedor Indutny
ddd6f59283
libc: add POSIX-compatible sysconf consts
...
Because its part of POSIX. Values are taken from FreeBSD, linux
and OSX header files.
2013-06-24 19:04:00 +02:00
Fedor Indutny
079b07df55
libc: support functions from sys/mman.h
...
Because its part of POSIX. Values are taken from FreeBSD, linux
and OSX header files.
2013-06-24 19:04:00 +02:00
blake2-ppc
6291702cf3
iterator: Add IteratorUtil::flat_map_
method
...
flat_map_ produces an iterator that maps each element to an iterator,
and yields the elements of the produced iterators.
This is the monadic bind :: M a -> (a -> M b) -> M b for iterators.
Named just like the vec method, but with a trailing underline until the
method resolution bug is resolved.
2013-06-24 12:50:41 +02:00
Daniel Micay
da1a9a30fd
work around ICE from default method
...
issue #7341
2013-06-24 01:58:10 -04:00
Daniel Micay
3ab5ec4b7c
iterator: implement collect
with FromIterator
...
This makes it take advantage of the size hint for pre-allocation.
2013-06-24 01:35:15 -04:00
Daniel Micay
8779be39e1
implement Clone for slices
2013-06-24 01:35:12 -04:00
Daniel Micay
e2e39234cc
remove old_iter
...
the `test/run-pass/class-trait-bounded-param.rs` test was xfailed and
written in an ancient dialect of Rust so I've just removed it
this also removes `to_vec` from DList because it's provided by
`std::iter::to_vec`
an Iterator implementation is added for OptVec but some transitional
internal iterator methods are still left
2013-06-24 01:35:11 -04:00
bors
ac4211ef52
auto merge of #7279 : hanny24/rust/master, r=msullivan
...
This commit adds filtered method for Option type. It is not exactly necessary (chain method can be used instead), however I believe that this approach using extra filtered method is more convinient.
2013-06-23 17:40:56 -07:00
Philipp Brüschweiler
e2f1049bd5
Remove unused TyDesc parameter from the glue functions
...
To remove the environment pointer, support for function pointers without
an environment argument is needed (i.e. a fixed version of #6661 ).
2013-06-23 13:02:00 +02:00
Philipp Brüschweiler
976c0b3dfb
Remove rust_call_tydesc_glue
...
Towards #4812 . Also includes some minor cleanups.
2013-06-23 12:49:16 +02:00
Philipp Brüschweiler
8bf0033345
Remove unused shape fields from typedescs
2013-06-23 12:49:16 +02:00
Philipp Brüschweiler
469f394b25
Remove intrinsic module
...
To achieve this, the following changes were made:
* Move TyDesc, TyVisitor and Opaque to std::unstable::intrinsics
* Convert TyDesc, TyVisitor and Opaque to lang items instead of specially
handling the intrinsics module
* Removed TypeDesc, FreeGlue and get_type_desc() from sys
Fixes #3475 .
2013-06-23 12:49:16 +02:00
Philipp Brüschweiler
f2c5642d13
Fix get_tydesc() return type
...
This fixes part of #3730 , but not all.
Also changes the TyDesc struct to be equivalent with the generated
code, with the hope that the above issue may one day be closed for good,
i.e. that the TyDesc type can completely be specified in the Rust
sources and not be generated.
2013-06-23 12:46:28 +02:00
Daniel Micay
ac2e167e7e
hashmap: add FIXME number
2013-06-23 05:13:13 -04:00
blake2-ppc
8baefec013
std::to_str: Use .iter() for HashMap and HashSet
2013-06-23 04:23:12 -04:00
blake2-ppc
13f666a724
std::hashmap: Remove BaseIter impl for HashSet
...
Remove the BaseIter impl, while keeping the .each method until callers
are converted.
2013-06-23 04:23:01 -04:00
blake2-ppc
f045210857
std::hashmap: Use .iter() instead of .each and similar
2013-06-23 04:23:00 -04:00
blake2-ppc
3af1d20bea
std::hashmap: Add test_iterate for HashSet
2013-06-23 04:23:00 -04:00
blake2-ppc
080d498af2
std::hashmap: Implement external iterator for HashMap and HashSet
2013-06-23 04:23:00 -04:00
Daniel Micay
d2e9912aea
vec: remove BaseIter implementation
...
I removed the `static-method-test.rs` test because it was heavily based
on `BaseIter` and there are plenty of other more complex uses of static
methods anyway.
2013-06-23 02:05:20 -04:00
Daniel Micay
c9342663df
iterator: add a FromIterator trait
...
This is able to take advantage of the lower bound from the size hint.
2013-06-22 15:59:59 -04:00
Daniel Micay
468cbd9d01
iterator: add a size_hint default method
...
also adds an implementation for the vector iterators
2013-06-22 15:59:59 -04:00
reus
9b2d9a9539
replaced some 'std::' with 'extra::' in comments
2013-06-22 17:49:32 +08:00
James Miller
81cf72c264
Finish up Type refactoring
2013-06-22 12:35:35 +12:00
James Miller
befbd3a680
Add the rest of the atomic operations.
...
This makes the handling of atomic operations more generic, which
does impose a specific naming convention for the intrinsics, but
that seems ok with me, rather than having an individual case for
each name.
It also adds the intrinsics to the the intrinsics file.
2013-06-22 12:26:33 +12:00
Brian Anderson
95eb01957b
std: Make console log off/on controls work with newsched
2013-06-21 16:52:07 -07:00
Brian Anderson
1b7c99655f
std::rt: Support os::args
2013-06-21 14:42:15 -07:00
Honza Strnad
f3966e4a08
Added filtered method for Option type
2013-06-21 21:27:58 +02:00
Daniel Micay
06bec77faf
replace vec::find with the IteratorUtil method
2013-06-21 03:24:03 -04:00
Daniel Micay
883c966d5c
vec: replace position
with iter().position_
2013-06-21 03:23:59 -04:00
Daniel Micay
49c74524e2
vec: rm old_iter implementations, except BaseIter
...
The removed test for issue #2611 is well covered by the `std::iterator`
module itself.
This adds the `count` method to `IteratorUtil` to replace `EqIter`.
2013-06-21 03:20:22 -04:00
Daniel Micay
cbad1da3db
vec: remove eachi
...
replaced by the `enumerate` method from std::iterator
2013-06-21 03:20:22 -04:00
Daniel Micay
62dc4e0d4c
vec: remove each_const
...
An Iterator implementation can be made for &const [T] if it turns out
to be necessary for some use case.
2013-06-21 03:20:22 -04:00
Brian Anderson
7a9a6e4591
std: Port SharedChan to newsched
2013-06-20 18:26:56 -07:00
Kevin Ballard
b8b2d1e5b4
Make task_rng() return @mut R instead of @@mut R
2013-06-20 15:55:43 -07:00
Brian Anderson
357f087786
Merge remote-tracking branch 'brson/io' into io-upstream
...
Conflicts:
src/rt/rust_builtin.cpp
src/rt/rustrt.def.in
2013-06-20 12:17:00 -07:00
Brian Anderson
4d39253a96
std::rt: Whitespace
2013-06-20 12:16:04 -07:00
bors
f348465283
auto merge of #7128 : yichoi/rust/fix_sometc, r=brson
...
- Fix stat struct for Android (found by SEGV at run-pass/stat.rs)
- Adjust some test cases to rpass for Android
- Modify some script to rpass for Android
2013-06-20 11:35:34 -07:00
Brian Anderson
bbf5469b75
Merge remote-tracking branch 'brson/io-wip' into io
2013-06-20 11:26:29 -07:00
Eric Reed
55dda46cf6
Merge remote-tracking branch 'upstream/io' into io
2013-06-20 10:51:04 -07:00
James Miller
0702e53576
libstd: cleanup warnings
2013-06-21 02:43:02 +12:00
James Miller
3bc4d1a120
Remove all #[cfg(stage0)]-protected code
...
New snapshot means this can all go. Also removes places that have
comments that say they are workarounds for stage0 errors.
2013-06-21 02:43:02 +12:00
James Miller
3acdbfd2c8
ignore inherited environment test under valgrind r=snapshot
2013-06-20 22:43:21 +12:00
Brian Anderson
391bb0b4e7
std: Make newsched failures log correctly
2013-06-19 18:37:50 -07:00
Eric Reed
36c0e04e57
derived instances of Eq and TotalEq for IpAddr rather than implement them manually.
2013-06-19 17:39:02 -07:00
Eric Reed
ac49b74e82
socket based UDP io
2013-06-19 17:23:55 -07:00
Brian Anderson
5086c0850e
std::rt: Update GC metadata in init
2013-06-19 16:08:07 -07:00
Eric Reed
083c692565
Changed visibility from being on the impl to being on methods per language syntax change.
2013-06-19 15:39:18 -07:00
toddaaro
753b497b4e
Modified a match in resume_task_from_queue that was returning an int that was then matched on to instead use an enum.
2013-06-19 15:23:14 -07:00
Eric Reed
d777ba01cb
Wrote the Eq instance of IpAddr in a slightly different way.
2013-06-19 15:20:28 -07:00
Brian Anderson
e1555f9b56
std::rt: Document and cleanup the run function
2013-06-19 01:13:56 -07:00
Brian Anderson
5722c953e5
std::rt: Correct the numbers of default cores
2013-06-19 00:49:05 -07:00
Brian Anderson
915aaa7f67
std::rt: Set the process exit code
2013-06-19 00:39:10 -07:00
Brian Anderson
1120f8c1e5
std::rt: Work around a dynamic borrowck bug
2013-06-18 23:20:53 -07:00
Brian Anderson
7f55fc33f0
std: Work around some failing 'run' tests when valgrinding. #7224
...
Under valgrind on 64->32 cross compiles the dynamic linker is emitting
some error messages on stderr, which interferes with the tests that
are checking stderr.
2013-06-18 19:52:05 -07:00
Brian Anderson
29ad8e15a2
std::rt: Improve the rtabort! macro
2013-06-18 16:27:48 -07:00
Graydon Hoare
d904c72af8
replace #[inline(always)] with #[inline]. r=burningtree.
2013-06-18 14:48:48 -07:00
Brian Anderson
5b2dc52034
std::rt: Turn on multithreaded scheduling
2013-06-18 00:17:14 -07:00
Brian Anderson
b5fbec9c1e
std: Rename abort!
to rtabort!
to match other macros
2013-06-17 23:24:50 -07:00
Brian Anderson
021e81fbd3
std::rt: move abort function to util module
2013-06-17 23:22:41 -07:00
Brian Anderson
9ef4c413a8
std::rt: Check exchange count on exit
2013-06-17 23:18:20 -07:00
Brian Anderson
3281f5b637
std::rt: Add util mod and num_cpus function
2013-06-17 22:17:51 -07:00
bors
d084d9e7df
auto merge of #7197 : rkbodenner/rust/doc-for-lib-move, r=brson
...
Was updating some code of mine to use the new `std`/`extra` library names, and noticed a place where docs for `std::libc` hadn't been updated. Then I updated some top-level docs for the new libraries' names, too.
2013-06-17 15:54:56 -07:00
bors
4c90b987b5
auto merge of #7131 : Blei/rust/windows-dynamic-lib, r=graydon
...
The code compiles and runs under windows now, but I couldn't look up any
symbol from the current executable (dlopen(NULL)), and calling looked
up external function handles doesn't seem to work correctly under windows.
This the beginning of a fix for #7095 .
2013-06-17 14:58:01 -07:00
Eric Reed
35f3fa6383
Merge remote-tracking branch 'upstream/io' into io
...
Conflicts:
src/libstd/rt/uvio.rs
2013-06-17 12:45:40 -07:00
Eric Reed
33ae193a3c
Started to implemented UdpStream
2013-06-17 12:35:41 -07:00
Eric Reed
e42f28c05c
stated to implement UdpStream
2013-06-17 12:34:58 -07:00
Eric Reed
47443753f1
added Eq and TotalEq instances for IpAddr
2013-06-17 12:33:46 -07:00
Eric Reed
7e022c590f
added a function to convert C's ipv4 data structure into the Rust ipv4 data structure.
2013-06-17 12:33:10 -07:00
Eric Reed
b51d1885be
Added a RtioUdpStream trait
2013-06-17 12:32:21 -07:00
Eric Reed
9687437d45
added wrappers about uv_ip{4,6}_{port,name}
2013-06-17 12:31:30 -07:00
bors
17eec6289b
auto merge of #7199 : Kimundi/rust/master, r=bstrie
...
- Fixed tests
- Added methods
- Renamed casting methods to be shorter
- Added unsafe versions
Closes #7150
2013-06-17 08:37:18 -07:00
bors
6fbd5383f9
auto merge of #7195 : brson/rust/timertest, r=bstrie
2013-06-17 06:52:14 -07:00
Young-il Choi
b82370cec6
std: fix stat struct of android (SEGV error from run-pass/stat.rs on android)
2013-06-17 18:53:33 +09:00
Marvin Löbel
c9e7bb7d4a
Improved std::ascii
...
- Fixed tests
- Added methods
- Renamed casting methods to be shorter
closes #7150
2013-06-17 10:16:13 +02:00
bors
90b999aea1
auto merge of #7198 : huonw/rust/slice-zeros, r=Aatch
2013-06-17 00:16:03 -07:00
Ralph Bodenner
5acc8e5a51
Reproduce text changes from @brson PR 7176 and fix a typo therein
2013-06-17 00:07:52 -07:00
Huon Wilson
f1d971ae18
std: add Zero impls for &[] and &str.
2013-06-17 17:05:51 +10:00
Ralph Bodenner
819d07af7f
Update doc references to new names for std, extra, and std::libc
2013-06-16 23:26:08 -07:00
Brian Anderson
93156ab7e1
std::rt: Reduce the delay on a timer test. Slow
2013-06-16 19:24:51 -07:00
Jens Nockert
bc6848d352
Adds conditional byteswapping intrinsics
...
These intrinsics are synthesized, so maybe they should be in another
file. But since they are just a single line of code each, based on the
bswap intrinsics and aren't really intended for public consumption (they should be exposed as a
single function / trait) I thought they would fit here.
2013-06-17 02:05:36 +02:00
Brian Anderson
319cf6e465
Merge remote-tracking branch 'brson/io'
...
Conflicts:
src/libstd/rt/comm.rs
src/libstd/rt/mod.rs
src/libstd/rt/sched.rs
src/libstd/rt/task.rs
src/libstd/rt/test.rs
src/libstd/rt/tube.rs
src/libstd/rt/uv/uvio.rs
src/libstd/rt/uvio.rs
src/libstd/task/spawn.rs
2013-06-16 15:09:25 -07:00
bors
fd8aa9afbd
auto merge of #7177 : huonw/rust/unfold-fix, r=thestinger
2013-06-16 10:55:02 -07:00