Niko Matsakis
3168fe06ff
Add manual &self/ and &static/ and /&self declarations that
...
are currently inferred. New rules are coming that will require
them to be explicit. All add some explicit self declarations.
2013-03-06 15:12:57 -05:00
Daniel Micay
7782aa82d2
bool: make the from_str function a FromStr impl
2013-03-06 13:05:59 -05:00
bors
4b79a58d9d
auto merge of #5252 : nikomatsakis/rust/issue-5087-make-trait-not-impl-self, r=pcwalton
...
Two changes:
- The first fixes an inconsistency in coherence whereby extension methods were added to the inherent methods table, but only in cross-crate scenarios. This causes some minor fallout in tests and so forth. In one case (comm) I added inherent and trait methods so as to avoid the need to import traits like `GenericPort` just to use a port.
- The second makes objects not implement the associated trait, as discussed in #5087 .
r? @pcwalton
2013-03-06 09:27:59 -08:00
Niko Matsakis
6d764cc361
Make object types not implement associated trait. Fixes #5087 .
2013-03-06 11:02:19 -05:00
Niko Matsakis
6267339d68
Fix bug in coherence that causes all cross-crate impls to be regarded as
...
inherent impls, not just those of the `impl Type` variety.
2013-03-06 11:02:19 -05:00
Ben Striegel
12f06bb496
Finish de-implicit-selifizng libcore
2013-03-06 04:00:25 -05:00
bors
959e483fb7
auto merge of #5235 : yjh0502/rust/io_float, r=graydon
...
When parsing bytes from a wire, there is a need to parse floating-point bytes to float values ([u8*4] to f32, [u8*8] to f64). This can be done via cast::transmute, but there is no way to do it safely.
It's quite common, so I think I't better to support it in core library.
2013-03-05 22:00:40 -08:00
Erick Tryzelaar
743cfce703
core: convert vec::{last,last_opt} to return references
2013-03-05 19:39:18 -08:00
Erick Tryzelaar
d60747a248
core: convert vec::{init,initn} to return references
2013-03-05 19:37:04 -08:00
Erick Tryzelaar
5ae06ae9de
core: convert vec::{tail,tailn} to return references
2013-03-05 19:37:04 -08:00
Erick Tryzelaar
359bb3e10b
core: convert vec::{head,head_opt} to return references
2013-03-05 19:37:04 -08:00
Jihyun Yu
ce23c8c0cf
add floating-point read/write to Reader/Writer
2013-03-06 09:07:04 +09:00
Daniel Micay
ab5bc5dffe
trie: remove the Copy requirement
2013-03-05 18:53:43 -05:00
bors
dec599f652
auto merge of #5234 : pcwalton/rust/equiv, r=pcwalton
...
r? @nikomatsakis
2013-03-05 12:12:50 -08:00
Patrick Walton
2fa2ad5995
libcore: Implement an Equiv
trait and use it on hashmaps.
...
7.3x speedup in string map search speed on a microbenchmark of pure hashmap
searching against a constant string, due to the lack of allocations.
I ran into a few snags.
1. The way the coherence check is set up, I can't implement `Equiv<@str>` and
`Equiv<~str>` for `&str` simultaneously.
2. I wanted to implement `Equiv<T>` for all `T:Eq` (i.e. every type can be
compared to itself if it implements `Eq`), but the coherence check didn't
like that either.
3. I couldn't add this to the `Map` trait because `LinearMap` needs special
handling for its `Q` type parameter: it must not only implement `Equiv<T>`
but also `Hash` and `Eq`.
4. `find_equiv(&&"foo")` doesn't parse, because of the double ampersand. It has
to be written `find_equiv(& &"foo")`. We can probably just fix this.
Nevertheless, this is a huge win; it should address a major source of
performance problems, including the one here:
http://maniagnosis.crsr.net/2013/02/creating-letterpress-cheating-program.html
2013-03-05 10:18:36 -08:00
bors
afd6196d7b
auto merge of #5233 : bstrie/rust/deimpselfcore, r=graydon
2013-03-05 08:12:51 -08:00
Daniel Micay
17b5a14c4c
trie: fix breaking out of the iterators early
2013-03-05 10:10:22 -05:00
Daniel Micay
f7ae9b1759
trie: fix each_reverse
2013-03-05 09:35:45 -05:00
bors
eddefbc893
auto merge of #5212 : thestinger/rust/iter, r=graydon
...
A small step towards fixing #2827
2013-03-05 02:06:50 -08:00
bors
75c5bc90d2
auto merge of #5179 : alexcrichton/rust/default-warn-unused-import, r=graydon
...
I've found that unused imports can often start cluttering a project after a long time, and it's very useful to keep them under control. I don't like how Go forces a compiler error by default and it can't be changed, but I certainly want to know about them so I think that a warn is a good default.
Now that the `unused_imports` lint option is a bit smarter, I think it's possible to change the default level to warn. This commit also removes all unused imports throughout the compiler and libraries (500+).
The only odd things that I ran into were that some `use` statements had to have `#[cfg(notest)]` or `#[cfg(test)]` based on where they were. The ones with `notest` were mostly in core for modules like `cmp` whereas `cfg(test)` was for tests that weren't part of a normal `mod test` module.
2013-03-05 00:57:46 -08:00
Ben Striegel
9db61e0c21
De-implicit-self libcore
2013-03-04 22:36:15 -05:00
bors
40e733a150
auto merge of #5209 : luqmana/rust/reader, r=graydon
2013-03-04 11:42:39 -08:00
Alex Crichton
cb4ab76e4a
Adding missing imports for tests, and gate off others
2013-03-04 12:27:01 -05:00
Alex Crichton
dfb5c10dea
Remove unused imports throughout src/
2013-03-04 12:27:01 -05:00
bors
c639a78dc4
auto merge of #5205 : thestinger/rust/radix, r=graydon
...
This is an implementation of a map and set for integer keys. It's an ordered container (by byte order, which is sorted order for integers and byte strings when done in the right direction) with O(1) worst-case lookup, removal and insertion. There's no rebalancing or rehashing so it's actually O(1) without amortizing any costs.
The fanout can be adjusted in multiples of 2 from 2-ary through 256-ary, but it's hardcoded at 16-ary because there isn't a way to expose that in the type system yet. To keep things simple, it also only allows `uint` keys, but later I'll expand it to all the built-in integer types and byte arrays.
There's quite a bit of room for performance improvement, along with the boost that will come with dropping the headers on `Owned` `~` and getting rid of the overhead from the stack switches to the allocator. It currently does suffix compression for a single node and then splits into two n-ary trie nodes, which could be replaced with an array for at least 4-8 suffixes before splitting it. There's also the option of doing path compression, which may be a good or a bad idea and depends a lot on the data stored.
I want to share the test suite with the other maps so that's why I haven't duplicated all of the existing integer key tests in this file. I'll send in another pull request to deal with that.
Current benchmark numbers against the other map types:
TreeMap:
Sequential integers:
insert: 0.798295
search: 0.188931
remove: 0.435923
Random integers:
insert: 1.557661
search: 0.758325
remove: 1.720527
LinearMap:
Sequential integers:
insert: 0.272338
search: 0.141179
remove: 0.190273
Random integers:
insert: 0.293588
search: 0.162677
remove: 0.206142
TrieMap:
Sequential integers:
insert: 0.0901
search: 0.012223
remove: 0.084139
Random integers:
insert: 0.392719
search: 0.261632
remove: 0.470401
@graydon is using an earlier version of this for the garbage collection implementation, so that's why I added this to libcore. I left out the `next` and `prev` methods *for now* because I just wanted the essentials first.
2013-03-04 08:21:47 -08:00
Jyun-Yan You
5150b9811b
rustc: MIPS32 support
2013-03-03 19:27:27 -08:00
Daniel Micay
af645e8487
replace option::iter with a BaseIter impl
2013-03-03 11:01:17 -05:00
Luqman Aden
162c816e34
libcore: Add read_until to ReaderUtil.
2013-03-03 02:03:30 -08:00
bors
5655ae46a7
auto merge of #5197 : pcwalton/rust/fn-types, r=pcwalton
...
r? @catamorphism
2013-03-02 19:18:37 -08:00
bors
826644e8cb
auto merge of #5114 : osaut/rust/incoming, r=brson
...
Several typos corrected in the comments of src/libcore/iter.rs and 2013 added to the copyright header (as requested on CONTRIBUTING.md)
2013-03-02 18:21:39 -08:00
Patrick Walton
542119f61f
libcore: Remove fn@
, fn~
, and fn&
from libcore. rs=defun
2013-03-02 16:49:32 -08:00
Patrick Walton
97fd421319
librustc: Remove fn@
, fn~
, and fn&
from librustc. rs=defun
2013-03-02 16:49:31 -08:00
Patrick Walton
a3f728238b
librustc: Forbid chained imports and fix the logic for one-level renaming imports
2013-03-02 16:49:30 -08:00
bors
a14b489925
auto merge of #5199 : thestinger/rust/hashmap, r=brson
...
Closes #4764
2013-03-02 16:30:39 -08:00
Daniel Micay
3550233d37
inline the implementation of TotalOrd for integers
2013-03-02 16:30:42 -05:00
Daniel Micay
a4d22635e1
add an initial radix trie implementation
2013-03-02 16:29:41 -05:00
bors
2304fe6208
auto merge of #5196 : thestinger/rust/ord, r=catamorphism
...
This allows `TreeMap`/`TreeSet` to fully express their requirements and reduces the comparisons from ~1.5 per level to 1 which really helps for string keys.
I also added `ReverseIter` to the prelude exports because I forgot when I originally added it.
2013-03-02 05:15:39 -08:00
Daniel Micay
035233a259
treemap: reimplement using TotalOrd
2013-03-02 14:10:19 -05:00
Daniel Micay
ca1ceb15b1
add a TotalOrd trait
2013-03-02 14:10:16 -05:00
bors
5aca7d6aef
auto merge of #5137 : yjh0502/rust/empty_struct, r=nikomatsakis
...
The fix is straight-forward, but there are several changes
while fixing the issue.
1) disallow `mut` keyword when making a new struct
In code base, there are following code,
```rust
struct Foo { mut a: int };
let a = Foo { mut a: 1 };
```
This is because of structural record, which is
deprecated corrently (see issue #3089 ) In structural
record, `mut` keyword should be allowd to control
mutability. But without structural record, we don't
need to allow `mut` keyword while constructing struct.
2) disallow structural records in parser level
This is related to 1). With structural records, there
is an ambiguity between empty block and empty struct
To solve the problem, I change parser to stop parsing
structural records. I think this is not a problem,
because structural records are not compiled already.
Misc. issues
There is an ambiguity between empty struct vs. empty match stmt.
with following code,
```rust
match x{} {}
```
Two interpretation is possible, which is listed blow
```rust
match (x{}) {} // matching with newly-constructed empty struct
(match x{}) {} // matching with empty enum(or struct) x
// and then empty block
```
It seems that there is no such code in rust code base, but
there is one test which uses empty match statement:
https://github.com/mozilla/rust/blob/incoming/src/test/run-pass/issue-3037.rs
All other cases could be distinguished with look-ahead,
but this can't be. One possible solution is wrapping with
parentheses when matching with an uninhabited type.
```rust
enum what { }
fn match_with_empty(x: what) -> ~str {
match (x) { //use parentheses to remove the ambiguity
}
}
```
2013-03-02 04:21:38 -08:00
Daniel Micay
a4175c34c3
make LinearMap fields private
...
Closes #4764
2013-03-02 05:09:36 -05:00
Jihyun Yu
95bc9ea26d
Remove REC, change related tests/docs
2013-03-02 12:57:05 +09:00
Brian Anderson
9639ca5aa8
core: Move core::rt to core::unstable::lang
2013-03-01 17:27:14 -08:00
Brian Anderson
bcf626812b
Rename core::private to core::unstable. #4743
2013-03-01 14:55:47 -08:00
Patrick Walton
50c08dbf0d
Merge pull request #5178 from catamorphism/constant-buffers
...
core: Address XXX, make static constants for strings used when stringify...
2013-03-01 08:44:47 -08:00
Patrick Walton
9519ee5d80
librustc: "APL2" -> "ASL2". rs=license-fix
2013-03-01 08:41:31 -08:00
Patrick Walton
c355f17943
Merge remote branch 'sevrak/issue-5164' into incoming
2013-03-01 08:39:02 -08:00
bors
1d34a55d88
auto merge of #5162 : brson/rust/fixmes, r=brson
2013-03-01 01:54:38 -08:00
bors
a660bb362c
auto merge of #5180 : catamorphism/rust/post-snapshot, r=catamorphism
...
* Disallow structural records everywhere
* Remove all #[cfg(stage0)] stuff
* Remove the last deprecated modes in libcore
* Un-xfail a test
2013-02-28 22:45:37 -08:00
bors
b7e72974dc
auto merge of #5147 : nikomatsakis/rust/remove-legacy-trait-table, r=nikomatsakis
...
r? @pcwalton
2013-02-28 21:39:39 -08:00
Tim Chevalier
6b6d15ac20
Remove code that was awaiting a snapshot
...
* Disallow structural records everywhere
* Remove all #[cfg(stage0)] stuff
* Remove the last deprecated modes in libcore
* Un-xfail a test
2013-02-28 20:30:50 -08:00
Niko Matsakis
4ecb672d7f
Remove legacy object creation mode, and convert remaining uses of it
2013-02-28 20:28:04 -05:00
bors
916d1a9165
auto merge of #5176 : brson/rust/unwrap_shared_mutable_state, r=nikomatsakis
...
r?
This fixes the current [random failures](http://buildbot.rust-lang.org/builders/auto-linux/builds/291/steps/test/logs/stdio ) on the bots and closes #4436 by removing `unwrap_shared_mutable_state` and the code that depends on it. The result is that ARC-like things will not be unwrappable. This feature is complex and is not used outside of test cases.
Note that there is not consensus to remove it.
(second commit)
2013-02-28 17:21:40 -08:00
Tim Chevalier
405a35c7f8
core: Address XXX, make static constants for strings used when stringifying floats
2013-02-28 16:49:02 -08:00
Brian Anderson
78d5091a4f
core: Remove unwrap_shared_mutable_state. #4436
2013-02-28 15:20:40 -08:00
Alex Crichton
2df07ddc25
Fix implicit leaks of imports throughout libraries
...
Also touch up use of 'pub' and move some tests around so the tested functions
don't have to be 'pub'
2013-02-28 18:00:34 -05:00
Patrick Walton
09a2b4e599
librustc: Make methods private if the impl is private
2013-02-28 11:32:26 -08:00
Patrick Walton
107bf96ff0
librustc: Mark all type implementations public. rs=impl-publicity
2013-02-28 11:32:24 -08:00
sevrak
833ad6018e
Fix license attribute on crates
2013-02-28 13:34:01 +00:00
bors
b171d0ef7b
auto merge of #5159 : brson/rust/rtcall, r=brson
2013-02-28 01:12:38 -08:00
bors
c705440ee3
auto merge of #5155 : bstrie/rust/dedrop, r=pcwalton
...
This removes all but 6 uses of `drop {}` from the entire codebase. Removing any of the remaining uses causes various non-trivial bugs; I'll start reporting them once this gets merged.
2013-02-27 23:30:40 -08:00
bors
6bff18ea0d
auto merge of #5098 : pkgw/rust/pr/issue4869, r=brson
...
See issue #4869 . I'm not quite sure what constitutes "consensus from the core team" (cf. discussion in the issue), but this at least demonstrates that the proposed change is pretty straightforward.
After this change, there are no new test failures. I've un-ignored the `to_str` vectors test; it's not at all obvious to me why it'd be problematic, and it passes on my Linux machine.
2013-02-27 20:39:39 -08:00
Brian Anderson
4a04a188e3
Convert NOTEs to FIXMEs
2013-02-27 18:44:35 -08:00
Brian Anderson
2f858de1c3
Remove the last remnants of rtcalls
2013-02-27 18:34:04 -08:00
Ben Striegel
43d43adf6b
Turn old drop
blocks into Drop
traits
2013-02-27 19:14:19 -05:00
bors
33e7a1f087
auto merge of #5145 : Kimundi/rust/incoming, r=catamorphism
2013-02-27 13:27:48 -08:00
Patrick Walton
07c3f5c0de
librustc: Forbid pub
or priv
before trait implementations
2013-02-27 09:40:16 -08:00
Patrick Walton
573a31dfa7
libsyntax: Forbid mutable vectors. rs=demuting
2013-02-27 09:40:16 -08:00
Patrick Walton
8d7e6ef772
libsyntax: Forbid ~mut
and ~const
. rs=demuting
2013-02-27 09:40:15 -08:00
Marvin Löbel
c2be2ec42d
Added ToStr implementations for &[T] and @[T]
2013-02-27 16:02:53 +01:00
bors
f4e8ac21cd
auto merge of #5135 : brson/rust/start, r=pcwalton
...
r?
#3406
Pretty straightforward. I'm using opaque pointers instead trying to get trans and core to agree on the types of the main function and crate map. One oddity is that this required changing the order of the `-lrustrt` argument to the linker in order to resolve `upcall_new_stack`. Linkers are mysterious.
2013-02-26 23:45:39 -08:00
bors
99a902c81d
auto merge of #5120 : jbclements/rust/macros-have-scope, r=pcwalton
...
r?
After this patch, macros declared in a module, function, or block can only be used inside of that module, function or block, with the exception of modules declared with the #[macro_escape] attribute; these modules allow macros to escape, and can be used as a limited macro export mechanism.
This pull request also includes miscellaneous comments, lots of new test cases, a few renamings, and a few as-yet-unused data definitions for hygiene.
2013-02-26 20:00:38 -08:00
Brian Anderson
f4327230fa
Add a 'start' lang item and use it instead of rust_start
2013-02-26 19:43:26 -08:00
Luqman Aden
f460c2adf8
Move levenshtein distance fn to core::str.
2013-02-26 17:23:30 -08:00
bors
0ded562e83
auto merge of #5023 : mitsuhiko/rust/make-absolute-refactor, r=catamorphism
...
This pull request moves the logic from os::make_absolute() into the path module and fixes path joining for Windows. It does this by adding an ``unsafe_join()`` function that implements the operating system's path joining semantics.
Additionally it also adds an ``is_restricted()`` method to the trait which will return true if the path points to a windows device file.
2013-02-26 14:03:52 -08:00
bors
0e6d895ed8
auto merge of #5119 : Kimundi/rust/incoming, r=catamorphism
...
Removed deprecated `str()` functions in int-template.rs and uint-template.rs
2013-02-26 10:54:39 -08:00
John Clements
598e814152
Hoist macro defs out of inner function
2013-02-26 10:26:42 -08:00
Marvin Löbel
42b0bacd76
Removed deprecated str()
functions in int-template.rs and uint-template.rs
2013-02-26 16:38:30 +01:00
Patrick Walton
e2f90091cf
libcore: Move Cell to core and de-~mut core and std
2013-02-26 04:18:12 -08:00
Patrick Walton
c483aab4ae
librustc: Implement a lint mode for mutable structures; deny by default. r=tjc
2013-02-26 04:18:11 -08:00
Olivier Saut
88f8868158
Add current year in the copyright header
2013-02-26 10:02:53 +01:00
Olivier Saut
4519f8290a
Various typos corrected
2013-02-26 09:56:04 +01:00
Peter Williams
a712d828f9
libcore: remove default to_str implementations for pointer types
...
These couldn't be overridden and so ended up being quite restrictive. This has
the side effect of changing the stringification of ~vecs, but nothing in
relied on this. Closes #4869 .
2013-02-23 17:43:08 -05:00
bors
1bc4e3f6a2
auto merge of #5078 : bblum/rust/incoming, r=brson
...
r? @brson
2013-02-22 13:39:34 -08:00
bors
c316189d15
auto merge of #5081 : brson/rust/pipes, r=pcwalton
...
r?
2013-02-22 11:24:38 -08:00
Graydon Hoare
0309af458c
Put unique allocs in managed heap when they might contain managed boxes.
2013-02-21 23:01:17 -08:00
Brian Anderson
dab6a85230
core: Extract comm from pipes. #4742
2013-02-21 17:36:54 -08:00
bors
ab784b7de5
auto merge of #5059 : Kimundi/rust/incoming, r=catamorphism
...
compiles-as-is, but needs a snapshot to remove the `stage0`ed extfmt export in core.
Closes #4750
2013-02-21 16:42:35 -08:00
Ben Blum
9dae4cf1f0
Fix private::exclusive_unwrap_conflict test. Fixes #4689 .
2013-02-21 19:42:18 -05:00
bors
c0218fb106
auto merge of #5069 : pcwalton/rust/plussing-2, r=pcwalton
2013-02-21 08:35:12 -08:00
Patrick Walton
c0defda499
librustc: Separate the rest of the trait bounds with +
and stop parsing space-separated ones. rs=plussing
2013-02-21 08:29:48 -08:00
Marvin Löbel
3792eb2a38
Moved core::extfmt to core::private::extfmt
...
Needs a snapshot to remove stage0 extfmt export in core
2013-02-21 13:32:20 +01:00
bors
a02da4ecde
auto merge of #5063 : pcwalton/rust/plussing, r=pcwalton
2013-02-20 21:22:30 -08:00
Patrick Walton
bf2a225c0b
librustc: Separate most trait bounds with '+'. rs=plussing
2013-02-20 21:14:20 -08:00
Matthijs 'Thiez' Hofstra
9776c38731
Changed a test to use intrinsics.rs and changed a few lines that were too long, had bad whitespace, etc.
2013-02-20 20:45:17 +01:00
Matthijs 'Thiez' Hofstra
675bdcf341
Created libcore/private/intrinsics.rs, which aims to contain every
...
rustc intrinsic. Several files in libcore have been changed to use
these intrinsics.
As of yet, none of the intrinsics are documented.
2013-02-20 20:39:49 +01:00
bors
f68335113b
auto merge of #5002 : catamorphism/rust/one-tuples, r=graydon
...
r? @graydon - This is for greater uniformity (for example, macros that generate
tuples). rustc already supported 1-tuple patterns, but there was no
way to construct a 1-tuple term.
@graydon , as far as your comment on #4898 - it did turn out to be solvable inside the macro (since @luqmana already fixed it using structs instead), but I still think it's a good idea to allow 1-tuples, for uniformity. I don't think anyone is likely to trip over it, and I'm not too worried that it changes the amount of ambiguity.
2013-02-19 09:14:33 -08:00
Graydon Hoare
968ab03026
rt: fix memory-unsafe random seed logic, r=valgrindclean
2013-02-19 07:06:36 -08:00
Tim Chevalier
dc30cc356b
core: Fix BSD breakage, I hope
2013-02-18 20:12:17 -08:00
Armin Ronacher
c77c5c4674
Added is_restricted() to path
2013-02-19 01:54:05 +00:00
Tim Chevalier
aa284de1fc
rustc: For one-tuples, make parsing and printing the type work
...
and add a test to reflect-visit-data
2013-02-18 17:45:56 -08:00
Armin Ronacher
b07eab5faa
Improved windows path handling support
2013-02-19 01:34:48 +00:00
Armin Ronacher
c8d8f6cfec
Refactored make_absolute into functionality on the Path
2013-02-18 22:48:18 +00:00
Daniel Micay
6956e81c9b
vec: grow_fn doesn't require Copy
2013-02-17 14:09:09 -05:00
Graydon Hoare
585d6f7b00
rustpkg: Massage for landing.
2013-02-15 18:50:51 -08:00
Zack Corr
b10dc1af06
Move semver to std and finish rustpkg
2013-02-15 18:04:10 -08:00
Zack Corr
2192d11cd1
Correct Zack Corr's email in AUTHORS.txt
2013-02-15 18:04:10 -08:00
Zack Corr
321e3c4909
Add cmp::Ord implementation for semver::Version
2013-02-15 18:04:10 -08:00
Zack Corr
226b61ba5f
rustpkg: Add package script parsing
2013-02-15 18:04:10 -08:00
bors
3e97cce27d
auto merge of #4957 : Kimundi/rust/incoming, r=catamorphism
...
Moved them into own module and made them not depend on an Round trait impl for integers and generic math functions that can fail on integers any more.
2013-02-15 17:29:57 -08:00
Graydon Hoare
1b87dedc0e
attempt to fix BSD breakage
2013-02-15 17:28:51 -08:00
Patrick Walton
bb833ca0f0
librustc: Stop parsing impl Type : Trait
and fix several declarations that slipped through. r=tjc
2013-02-15 16:59:56 -08:00
bors
566bcf2225
auto merge of #4969 : nickdesaulniers/rust/issue3869, r=brson
...
Issue #3869
review? @nikomatsakis
Convert all uses of vec::slice to vec::view Issue #3869
Rename const_view to const_slice
Renamed mut_view to mut_slice
Fix windows build error. `buf` is borrowed by the call to
`as_mut_buf()` and so we must invoke `slice()` outside of that
call.
2013-02-15 13:54:49 -08:00
bors
0528329a4f
auto merge of #4964 : luqmana/rust/demove, r=graydon
...
As per #4339/#3676 this pull removes all uses `move` and gets rid of parsing it in libsyntax.
So that's one more thing to cross off #4707
2013-02-15 12:09:15 -08:00
bors
690d038d0b
auto merge of #4959 : thestinger/rust/map, r=graydon
2013-02-15 11:26:41 -08:00
bors
0a1fcadc90
auto merge of #4958 : cpeterso/rust/reseed-rng, r=graydon
...
For Issue #4709 :
**c531506 rt: rand.rs expects `rust_next()` to return `uint32_t`, not `size_t`**
rand.rs expects `rustrt::rand_next()` to return `u32`, but the `rand_next()` C function returns `size_t`: ca71c6ec5b/src/libcore/rand.rs (L34)
**f4320b6 move isaac RNG utility functions to new rust_rng.cpp file**
**665e900 encapsulate isaac RNG in `rust_rng` struct**
Move isaac's `randctx` into a `rust_rng` struct to make names similar to `rand::Rng` function names and prepare for auto-reseeding in the next commit.
**9a78dc9 reseed `rust_rng` after generating 32KB**
Precedents from other languages:
* Haskell's `GenAutoReseed` generator reseeds itself after generating 32KB: http://hackage.haskell.org/packages/archive/DRBG/0.1.2/doc/html/Crypto-Random-DRBG.html#t:GenAutoReseed
* Go's RNG reseeds itself after generating 1MB: https://code.google.com/p/go/source/browse/src/pkg/crypto/rand/rand_unix.go?name=go1.0.3#94
**9a76d71 don't deplete RNG entropy when there is only one runnable task**
`rust_sched_loop::schedule_task()` unnecessarily calls `isaac_rand()` for the common case when there is only 1 runnable task, thus depleting RNG entropy and incurring unnecessary overhead.
2013-02-15 10:06:12 -08:00
Niko Matsakis
91af52784a
Fix windows build error. buf
is borrowed by the call to
...
`as_mut_buf()` and so we must invoke `slice()` outside of that
call.
2013-02-15 09:25:16 -08:00
Marvin Löbel
46736868df
Removed has_*
predicates from NumStrConv trait
...
Moved `is_*` predicates into standalone functions
2013-02-15 13:39:51 +01:00
Luqman Aden
5912b1448c
libcore: Get rid of move
.
2013-02-15 02:49:54 -08:00
Daniel Micay
1561661db8
add reserve_at_least method to LinearMap/LinearSet
2013-02-15 02:39:20 -05:00
bors
9727008ed0
auto merge of #4944 : catamorphism/rust/xxx-to-fixme, r=catamorphism
2013-02-14 23:11:13 -08:00
Chris Peterson
665e900ede
encapsulate isaac RNG in rust_rng struct
2013-02-14 22:31:08 -08:00
Daniel Micay
1e809aad3a
rm FIXME from LinearMap's to_bucket
...
There are no more poor hash functions left in the codebase, and it makes
sense to rely on there being a good hash function thanks to the
inclusion of SipHash and the ease of using it with custom types.
Closes #3041
2013-02-15 00:55:46 -05:00
Marvin Löbel
a0846d4f6a
tidy
2013-02-15 06:11:06 +01:00
Marvin Löbel
3edc7c0b9c
Removed generic infinity, NaN and negative zero functions
...
Removed Round impl for integers
2013-02-15 05:46:07 +01:00
Marvin Löbel
df36a8dfc9
Long lines, proper FIXME, inlining
2013-02-15 05:40:01 +01:00
Marvin Löbel
bd93a36d73
Made num <-> str conversion functions use NumStrConv trait
...
Removed hacky dependency on Round trait and generic infinity functions
Removed generic-runtime-failure-depending-on-type behavior
2013-02-15 05:20:36 +01:00
Marvin Löbel
26e0aafb88
Added NumStrConv trait and impls for the string conversion functions
2013-02-15 04:40:32 +01:00
bors
5a9da65dc9
auto merge of #4937 : luqmana/rust/remove-mut-addr-of, r=catamorphism
2013-02-14 19:16:07 -08:00
Luqman Aden
206757f868
libcore: replace mut_addr_of properly on mac
2013-02-14 18:36:10 -08:00
Luqman Aden
cc89029942
libcore: Remove ptr::mut_addr_of since &mut is coerced to *mut
2013-02-14 18:36:10 -08:00
Marvin Löbel
adac6cb5c6
Moved numeric string conversion functions into own module
2013-02-15 03:29:36 +01:00
bors
20fd0c53ed
auto merge of #4938 : thestinger/rust/no_zero, r=brson
...
I removed the unused wrappers methods named `calloc` because they relied on the malloc wrapper having a `bool zero = true` default parameter (which resulted in some accidental zeroing). Perhaps wrapping the actual calloc function would be useful, but I don't know of an existing use case that could use it so I just removed these.
This gives an ~1% performance improvement for TreeMap, which does a lot of small allocations. Vectors use `realloc` which didn't zero before these changes so there's no measurable change in performance.
2013-02-14 18:27:54 -08:00
Tim Chevalier
dcb98f4097
core: Clean up XXXes
2013-02-14 18:17:56 -08:00
Nick Desaulniers
5d62a4a52e
Convert all uses of vec::slice to vec::view Issue #3869
...
Rename const_view to const_slice
Renamed mut_view to mut_slice
2013-02-14 16:14:32 -08:00
bors
3c07d037cd
auto merge of #4934 : nickdesaulniers/rust/issue4524cleanup, r=brson
...
review? @brson
Issue #4524
2013-02-14 15:37:48 -08:00
Patrick Walton
9143688197
librustc: Replace impl Type : Trait
with impl Trait for Type
. rs=implflipping
2013-02-14 14:44:12 -08:00
Nick Desaulniers
4699ac67c6
Remove all final references to die!
2013-02-14 13:09:09 -08:00
Daniel Micay
22e88d510f
stop zeroing all exchange allocations
2013-02-14 15:59:15 -05:00
Patrick Walton
216e85fadf
libcore: Move the numeric operations out of Num. r=brson
...
Sadly I could not use trait inheritance due to a type parameter substitution
bug.
2013-02-14 08:14:01 -08:00
Nick Desaulniers
4445b38df2
Remove die!, raplace invocations with fail! Issue #4524 pt 3
2013-02-13 17:01:32 -08:00
bors
d5bf3b85d1
auto merge of #4908 : bstrie/rust/rimov3, r=pcwalton
...
This patch finishes removing inner vector mutability from the vast majority of the compiler. Exceptions:
* core::dvec: ideally this entire type will be able to be replaced by `~[]`, but Niko asked me to hold off on removing Dvecs until he makes some fixes to borrowed pointers.
* liveness: liveness.rs is an impenetrable neutron star of deprecated semantics.
* compile-fail: I'm not sure if a lot of these tests are testing inner mutability or mutability in general. I figure that RIMOVing this folder should wait until this syntax is removed from the parser.
I also took this chance to remove many of the inner-mutability-related functions from core::vec, or as many uses of those functions as possible where still necessary. consume_mut and append_mut have been axed. cast_to_mut and cast_from_mut are still needed in a few places.
2013-02-13 15:09:07 -08:00
Graydon Hoare
e5aa399e0d
rustc and std: teach about #[bench], modernize to use quote_expr! some.
2013-02-13 11:46:25 -08:00
Graydon Hoare
73280b0472
core: add abs to num.
2013-02-13 11:46:25 -08:00
Graydon Hoare
389125aeb8
core: add min and max to cmp, re-export various places.
2013-02-13 11:46:25 -08:00
Ben Striegel
e6c82c0375
RIMOV core::vec
...
Also remove as many uses as possible of vec::cast_to_mut and
cast_from_mut
2013-02-13 12:48:24 -05:00
Ben Striegel
4de76aeb14
RIMOV core::hash
2013-02-13 12:47:44 -05:00
Ben Striegel
808ccd3349
RIMOV core::io
2013-02-13 12:47:44 -05:00
Ben Striegel
3a3f7b8e55
RIMOV core::rand
2013-02-13 12:47:44 -05:00
Ben Striegel
2d2ed075e3
RIMOV core::run
2013-02-13 12:47:43 -05:00
bors
6016214101
auto merge of #4900 : luqmana/rust/core_os_errors, r=graydon
...
Rewrote the last pull request (#4859 ) to not require on llvm for core.
Also fixes #2269 .
2013-02-12 21:27:22 -08:00
bors
27b3e01377
auto merge of #4914 : nikomatsakis/rust/issue-4856, r=nikomatsakis
...
and then adjust code to match. rs=unsound (will review post-landing)
rs=unsound
2013-02-12 20:40:19 -08:00
Niko Matsakis
ab2534974c
Adjust borrow checker algorithm to address #4856 unsoundness,
...
and then adjust code to match. rs=unsound (will review post-landing)
2013-02-12 20:10:50 -08:00
bors
6727c6fb56
auto merge of #4881 : bjz/rust/incoming, r=catamorphism
2013-02-12 16:22:58 -08:00
bors
91c59f5c9a
auto merge of #4880 : erickt/rust/hashmap-cleanup, r=catamorphism
2013-02-12 15:24:42 -08:00
bors
bc2d147847
auto merge of #4858 : z0w0/rust/rm_weak_task_count, r=graydon
2013-02-12 14:36:33 -08:00
bors
210fa2d017
auto merge of #4874 : thestinger/rust/option, r=catamorphism
2013-02-12 10:35:12 -08:00
Luqman Aden
44b80ed0d6
Long lines.
2013-02-11 23:49:49 -05:00
Luqman Aden
70185fdcc2
rt: remove last_os_error and adjust tests.
2013-02-11 23:49:49 -05:00
Luqman Aden
625fac3c7e
core: Rewrite last_os_error in Rust for windows as well.
2013-02-11 23:49:49 -05:00
Luqman Aden
9877d98b8f
core: Rewrite last_os_error in Rust for unix and provide access to errno (unix) and GetLastError (windows).
2013-02-11 23:49:49 -05:00
Zack Corr
0db527e2f8
core: Fix dec/inc_kernel_live_count mixup
2013-02-12 12:27:19 +10:00
Zack Corr
33ae05871c
core: Fix files that needed GenericChan/Port from prelude
2013-02-11 12:11:23 +10:00
Brendan Zabarauskas
48b2141b83
Add NumCast trait for generic numeric type casts
2013-02-11 12:33:05 +11:00
Erick Tryzelaar
4fb4a4b66d
core: add LinearMap::find_or_insert{,_with}
...
This allows for inserting a new value into the map only if it doesn't
already exist in the map.
2013-02-10 15:51:25 -08:00
Erick Tryzelaar
849644b5bc
core: rename hashmap test functions
2013-02-10 15:51:25 -08:00
Erick Tryzelaar
fed5df8f2e
libcore: LinearMap doesn't need to pass around the bucket vec
2013-02-10 15:51:25 -08:00
Daniel Micay
99ff74c1bd
make Option's iter method use a lifetime
2013-02-10 16:30:17 -05:00
Zack Corr
4f843763a1
core: Remove GenericChan/Port from prelude. Closes #4762
2013-02-10 18:10:09 +10:00
bors
d90abd5879
auto merge of #4848 : nikomatsakis/rust/issue-4821-bad-kind-computation, r=catamorphism
...
...ear
values to be copied. Rewrite kind computation so that instead of directly
computing the kind it computes what kinds of values are present in the type,
and then derive kinds based on that. I find this easier to think about.
Fixes #4821 .
r? @catamorphism
2013-02-09 10:20:55 -08:00
Zack Corr
ebd20b7944
Rename dec/inc_weak_task_count to inc/dec_live_count and remove register_task/unregister_task. Closes #4768
2013-02-09 19:19:31 +10:00
Niko Matsakis
a380df809c
Fix subtle error in caching during kind computation that could cause linear
...
values to be copied. Rewrite kind computation so that instead of directly
computing the kind it computes what kinds of values are present in the type,
and then derive kinds based on that. I find this easier to think about.
Fixes #4821 .
2013-02-08 07:20:39 -08:00
bors
e5637226d8
auto merge of #4839 : catamorphism/rust/rm-structural-records, r=catamorphism
2013-02-07 23:16:42 -08:00
Tim Chevalier
3b8f1fa2b6
core: Remove structural records from the rest of core, except pipes
...
That will, sadly, require one more snapshot.
2013-02-07 22:48:57 -08:00
Daniel Micay
9599cc86f0
implement BaseIter for LinearMap
2013-02-07 22:28:58 -05:00
Daniel Micay
3e0a28c7da
add a ReverseIter trait
2013-02-07 22:04:38 -05:00
Daniel Micay
e018244777
make Option's map and map_default use a lifetime
2013-02-07 22:04:38 -05:00
Daniel Micay
83270d2d79
rm each method from the Map trait
...
the map types should implement BaseIter instead
2013-02-07 22:04:35 -05:00
Tim Chevalier
9123c58526
core: Remove transitional code
2013-02-07 18:26:43 -08:00
Patrick Walton
472797b04a
librustc: Lots of de-muting. rs=demuting
2013-02-07 16:17:39 -08:00
Brian Anderson
6e9298ab88
Merge pull request #4619 from brson/exchange
...
Some work on freestanding Rust: foreign calls, exchange allocator
2013-02-07 13:46:10 -08:00
Niko Matsakis
a32498d846
Make ~fn non-copyable, make &fn copyable, split barefn/closure types,
...
correct handling of moves for struct-record update.
Part of #3678 . Fixes #2828 , #3904 , #4719 .
2013-02-07 05:53:30 -08:00
bors
951ad11d68
auto merge of #4815 : thestinger/rust/treemap, r=pcwalton
...
5283a8b reworks the TreeMap lazy iterator to use `&mut` again, which closes #4763 . It gets the performance of the set methods back in the same ballpark that it was pre-INHTWAMA which is nice. These can be turned back into methods eventually.
e5b6334 removes the transitional smallintmap attributes which closes #4737 .
2013-02-06 22:57:08 -08:00
bors
2df473dc69
auto merge of #4801 : z0w0/rust/randomtrait, r=graydon
...
Also adds Rng::gen() for generically generating any type that implements the Rand trait. There's no way to generate things with a length (for e.g. strings or vectors), because I can't think of an elegant way to do that. Maybe have a RandLen trait that inherits Rand?
This can be used for a quickcheck mechanism I'm working on.
2013-02-06 21:04:37 -08:00
Daniel Micay
b91a51daca
remove issue #3148 workarounds (no longer needed)
2013-02-06 17:37:56 -05:00
Brian Anderson
e43c5bdc6b
Rewrite the exchange allocator to work without an active scheduler. #4457
2013-02-06 14:27:36 -08:00
Tim Chevalier
33e2c979ce
Merge branch 'incoming' into removing
2013-02-05 10:33:35 -08:00
Tim Chevalier
2dcb3ed745
Merge
2013-02-05 10:33:28 -08:00
bors
e72c917f71
auto merge of #4793 : brson/rust/ignore_exclusive_unwrap_conflict, r=brson
2013-02-05 05:21:28 -08:00
Zack Corr
abd29e5ead
core: Add a rand::Rand trait that is implemented by types that can be
...
randomly generated
Also adds Rng::gen() for generating any type that implements the Rand
trait
2013-02-05 22:56:40 +10:00
bors
6e0f05b059
auto merge of #4790 : pcwalton/rust/at-readers, r=pcwalton
2013-02-05 02:09:29 -08:00
Tim Chevalier
2f46b763da
core/syntax: Staging fixes
2013-02-04 17:42:19 -08:00
Tim Chevalier
e22aa029fb
core/syntax: Add transitional code for pipes
2013-02-04 15:18:53 -08:00
Brian Anderson
8dfab498ef
Ignore test exclusive_unwrap_conflict. #4689
2013-02-04 14:19:19 -08:00
bors
eb28ce01ed
automated merge
2013-02-04 13:35:37 -08:00
Patrick Walton
7d5322cf09
libcore: Add @ to Readers
2013-02-04 13:33:17 -08:00
Erick Tryzelaar
159568eab5
core: Flesh out the either traits
2013-02-03 21:55:51 -08:00
Erick Tryzelaar
f4ed7d9b6e
core: export either::{Either,Left,Right} from the prelude
2013-02-03 21:55:51 -08:00
Erick Tryzelaar
31404364e1
core: sort each prelude.rs section
2013-02-03 21:55:51 -08:00
Erick Tryzelaar
9adfa59d8e
core: convert ToStr::to_str to take explicit &self
2013-02-03 20:47:26 -08:00
Marvin Löbel
eeb89c5012
Solved float, f32 and f64 to_str_radix()
special value ambiguity.
...
Calling it on a special value now causes a failure, however `to_str_radix_special()` is provided which can be
used if those values are expected, and which returns a tupel to allow differentating them.
2013-02-03 15:37:25 -08:00
Marvin Löbel
974d5ac1e0
Fixed errors resulting from rebase.
2013-02-03 15:37:25 -08:00
Marvin Löbel
af4972f3ce
Fixed fmt!
, tests, doc-tests.
2013-02-03 15:37:25 -08:00
Marvin Löbel
98445d95d4
Removed wrong/wip doc
2013-02-03 15:37:25 -08:00
Marvin Löbel
a612e49a21
Converted the floating point types to the new string conversion functions.
...
Also fixed all conflicting calls of the old functions in the rest of the codebase.
The set of string conversion functions for each float type now consists of those items:
- to_str(), converts to number in base 10
- to_str_hex(), converts to number in base 16
- to_str_radix(), converts to number in given radix
- to_str_exact(), converts to number in base 10 with a exact number of trailing digits
- to_str_digits(), converts to number in base 10 with a maximum number of trailing digits
- implementations for to_str::ToStr and num::ToStrRadix
- from_str(), parses a string as number in base 10 including decimal exponent and special values
- from_str_hex(), parses a string as a number in base 16 including binary exponent and special values
- from_str_radix(), parses a string as a number in a given base excluding any exponent and special values
- implementations for from_str::FromStr and num::FromStrRadix
2013-02-03 15:37:24 -08:00
Marvin Löbel
7113fd150a
Fixed tests still using old integer to_str
...
Fixed integer tests
2013-02-03 15:37:24 -08:00
Marvin Löbel
eb19462104
Converted libcore/uint-template.rs to the new string functions.
...
- Moved ToStr implementation of unsigned integers to uint-template.rs.
- Marked the `str()` function as deprecated.
- Forwarded all conversion functions to `core::num::to_str_common()`
and `core::num::from_str_common()`.
- Fixed most places in the codebase where `to_str()` is being used.
- Added uint-template to_str and from_str overflow tests.
2013-02-03 15:37:24 -08:00
Marvin Löbel
26e72bf92b
Converted libcore/int-template.rs to the new string functions.
...
- Moved ToStr implementation of integers to int-template.rs.
- Marked the `str()` function as deprecated.
- Forwarded all conversion functions to `core::num::to_str_common()`
and `core::num::from_str_common()`.
- Fixed most places in the codebase where `to_str()` is being used.
- Added int-template to_str and from_str overflow tests.
2013-02-03 15:37:24 -08:00
Marvin Löbel
5b0335ec8e
Added generic string <-> number conversion functions to core::num.
...
They unify the different implementations that exists in int-template.rs, uint-template.rs and float.rs into one pair of functions, which are also in principle usable for anything that implements the necessary numeric traits. Their usage is somewhat complex due to the large amount of arguments each one takes, but as they're not meant to be used directly that shouldn't be a problem.
2013-02-03 15:37:24 -08:00
Marvin Löbel
bb9c3ed876
Added some generic number functions to core::num
...
Also fixes previous commit not compiling due to not finding Option.
2013-02-03 15:37:24 -08:00
Marvin Löbel
05d83017ec
Added char::from_digit(), char::is_digit_radix() and an argument check to char::to_digit().
2013-02-03 15:37:24 -08:00
Marvin Löbel
d13b23f37e
Added ToStrRadix and FromStrRadix traits
2013-02-03 15:37:24 -08:00
Marvin Löbel
96f0512a45
Added Round trait to core
2013-02-03 15:37:23 -08:00
Marvin Löbel
40f0b45f8e
Moved all numeric modules in core into own directory
...
Reason: Better grouping of related modules, future-proving for a more extensive math library.
2013-02-03 15:37:23 -08:00
Brian Anderson
4f6516969e
rt: Remove ports
2013-02-01 21:22:49 -08:00
Brian Anderson
542bf20414
core: Remove oldcomm
2013-02-01 21:22:49 -08:00
Nick Desaulniers
7868b6bf55
Remove fail keyword from lexer & parser and clean up remaining calls to
...
fail
Fix merge conflicts - Issue 4524
2013-02-01 00:15:42 -08:00
Nick Desaulniers
6fb4239bb3
Replace most invocations of fail keyword with die! macro
2013-01-31 22:25:12 -08:00
Nick Desaulniers
aee7929469
Replace most invocations of fail keyword with die! macro
2013-01-31 20:12:49 -08:00
Tim Chevalier
a9587b8fcd
core: Remove transitional code
2013-01-31 19:35:57 -08:00
Tim Chevalier
845b06542e
messing around with pipes and stages
2013-01-31 19:35:56 -08:00
Tim Chevalier
e0281d991c
core: Stamp out XXXes (comments only)
2013-01-31 19:34:46 -08:00
Brian Anderson
5aacf791e8
Merge pull request #4706 from sanxiyn/cleanup-fixme
...
Cleanup FIXMEs (#3488 )
2013-01-31 17:00:27 -08:00
Brian Anderson
c95c7c87b1
Merge pull request #4702 from aydinkim/patch-1
...
Delete unnecessary logs
2013-01-31 16:57:30 -08:00
Niko Matsakis
0682ad0eb9
Finalize moves-based-on-type implementation.
...
Changes:
- Refactor move mode computation
- Removes move mode arguments, unary move, capture clauses
(though they still parse for backwards compatibility)
- Simplify how moves are handled in trans
- Fix a number of illegal copies that cropped up
- Workaround for bug involving def-ids in params
(see details below)
Future work (I'll open bugs for these...):
- Improve error messages for moves that are due
to bindings
- Add support for moving owned content like a.b.c
to borrow check, test in trans (but I think it'll
"just work")
- Proper fix for def-ids in params
Def ids in params:
Move captures into a map instead of recomputing.
This is a workaround for a larger bug having to do with the def-ids associated
with ty_params, which are not always properly preserved when inlining. I am
not sure of my preferred fix for the larger bug yet. This current fix removes
the only code in trans that I know of which relies on ty_param def-ids, but
feels fragile.
2013-01-31 12:09:00 -08:00
Seo Sanghyeon
7b268e8316
Cleanup FIXMEs ( #3488 )
2013-01-31 19:23:18 +09:00
Aydin Kim
6102d2abf2
Delete unnecessary logs
2013-01-31 15:47:44 +09:00
Patrick Walton
366812a5c3
librustc: Change self
as a type to Self
everywhere. r=brson
2013-01-30 19:52:45 -08:00
Graydon Hoare
4030aaff20
rustc: make integral type inference transactional, close #3211 , close #4401 , close #3398 .
2013-01-30 16:21:19 -08:00
Tim Chevalier
77f2aac389
Merge pull request #4687 from alexcrichton/hashmap-speedup
...
Use task local random when initializing LinearMap
2013-01-30 14:48:49 -08:00
Cody Schroeder
b505504dc4
Add test for float::round
2013-01-30 01:28:04 -08:00
Alex Crichton
c75e59ac0f
Use task local random when initializing maps
2013-01-30 02:49:58 -05:00
Patrick Walton
28ed9dc09e
librustc: Long lines. rs=burning
2013-01-29 22:40:13 -08:00
Patrick Walton
0c1d9befb3
librustc: Speed up byte copy operations. r=nmatsakis
2013-01-29 22:15:06 -08:00
Patrick Walton
1b613ff9fc
librustc: Strdup unique strings instead of copying in byte by byte. Shaves 2MB off librustc at -O0.
2013-01-29 22:14:08 -08:00
Tim Chevalier
4b8dfad5cd
core tests: Add use vec; directive inside core::hashmap tests
...
This is probably to work around a bug.
2013-01-29 20:43:44 -08:00
Tim Chevalier
b927e48a26
Merge pull request #4682 from thestinger/treemap
...
Set trait improvements + minor treemap cleanup
2013-01-29 20:09:15 -08:00
Tim Chevalier
0aef28dd6d
De-capitalize "note" to get rid of spurious tidy warnings
2013-01-29 19:26:55 -08:00
Daniel Micay
6b08683e15
add intersection and union to the Set trait
2013-01-29 22:24:00 -05:00
Daniel Micay
99eb4ddddd
add difference and symmetric_difference to Set
2013-01-29 21:59:58 -05:00
Daniel Micay
42cafcee2c
add is_disjoint to the Set trait
2013-01-29 21:30:55 -05:00
Daniel Micay
bfa9c9a00f
add is_subset and is_superset to the Set trait
2013-01-29 21:30:55 -05:00
Patrick Walton
d0391c5b09
libcore: De-export libcore. rs=deexporting
2013-01-29 11:48:46 -08:00
Tim Chevalier
1b021d5868
Long line
2013-01-29 11:44:46 -08:00
Patrick Walton
226cd68f13
librustc: De-implicit-self the visitor. r=graydon
2013-01-29 10:43:12 -08:00
Patrick Walton
6ce74460e6
librustc: Disallow trait bounds in types, enumerations, and structure definitions. r=tjc
2013-01-29 10:42:58 -08:00
Patrick Walton
eb4d39e1fe
libstd: Remove "dual impls" from the language and enforce coherence rules. r=brson
...
"Dual impls" are impls that are both type implementations and trait
implementations. They can lead to ambiguity and so this patch removes them
from the language.
This also enforces coherence rules. Without this patch, records can implement
traits not defined in the current crate. This patch fixes this, and updates
all of rustc to adhere to the new enforcement. Most of this patch is fixing
rustc to obey the coherence rules, which involves converting a bunch of records
to structs.
2013-01-29 10:42:45 -08:00
Alex Crichton
810eeef444
Fix the len() method on LinearMap during popping
2013-01-29 11:16:39 -05:00
Tim Chevalier
c5461e46ae
core: Allow legacy records in in a few modules
...
Because of macros, #[allow(structural_records]] in
extfmt, gc, os, pipes, and run. Will need a snapshot.
2013-01-28 19:41:56 -08:00
Brian Anderson
a72aeef9f7
Revert readline optimization and add test
2013-01-28 19:32:02 -08:00
Michael Neumann
d38939c7e8
Slightly optimize read_line()
...
No need to allocate an additional vector. Instead directly push into the
string.
2013-01-28 14:40:11 -08:00
Michael Neumann
02de11c1e7
Fix example code
2013-01-28 14:40:11 -08:00
Daniel Micay
8eaf0737b7
get rid of LinearMap's find_copy method
2013-01-28 16:06:09 -05:00
Brian Anderson
83ca034d2e
Merge remote-tracking branch 'brson/nocommupstream2'
2013-01-26 14:57:58 -08:00
Tim Chevalier
0743cec023
core: Remove structural records in library tests
2013-01-26 11:35:17 -08:00
Tyler Bindon
3a5d2cdbf3
Fix Option camel case in comments
2013-01-25 19:42:23 -07:00
Brian Anderson
1ef83945c1
Merge remote-tracking branch 'brson/nocommupstream'
...
Conflicts:
src/libcore/private.rs
src/libcore/task/mod.rs
src/libcore/task/spawn.rs
src/libstd/net_tcp.rs
src/libstd/uv_global_loop.rs
src/libstd/uv_iotask.rs
2013-01-25 18:06:30 -08:00
Tim Chevalier
85a34c2898
Merge pull request #4625 from thestinger/container
...
more little container improvements
2013-01-25 11:57:51 -08:00
Tim Chevalier
2d33e308ac
core: Mop up Windows breakage
2013-01-24 20:39:09 -08:00
Daniel Micay
e4337a9def
remove remaining is_not_empty functions/methods
2013-01-24 23:24:57 -05:00
Daniel Micay
ec3f6e1932
implement Mutable trait for vec
2013-01-24 23:10:14 -05:00
Daniel Micay
d95c9cbe38
replace ConstVector trait with the Container trait
2013-01-24 23:02:44 -05:00
Tim Chevalier
b73d926a7e
Merge pull request #4623 from thestinger/map
...
clean up LinearMap implementation
2013-01-24 19:17:23 -08:00
Daniel Micay
5c14b91bad
clean up LinearMap implementation
2013-01-24 22:04:16 -05:00
Erick Tryzelaar
11fd2beef9
Convert dlist records into structs
2013-01-24 16:24:31 -08:00
Erick Tryzelaar
339618a7f9
convert io wrapper records into structs
2013-01-24 16:24:31 -08:00
Erick Tryzelaar
9b17e7a777
Fix another typo
2013-01-24 16:24:31 -08:00
Erick Tryzelaar
5085eb3c28
Convert pipes::Buffer into a struct
2013-01-24 16:24:31 -08:00
Erick Tryzelaar
feab095d65
Convert core::pipes::{Packet,Chan_,Port_} into structs
2013-01-24 16:24:31 -08:00
Erick Tryzelaar
90734a0d33
Convert extfmt::rt::Conv into a struct
2013-01-24 16:24:31 -08:00
Erick Tryzelaar
79a9b23f4a
Fix a typo
2013-01-24 16:24:31 -08:00
Erick Tryzelaar
c15facb5c0
Remove "unsafe" from run::start_program
2013-01-24 16:24:30 -08:00
Erick Tryzelaar
e22d2bc4bc
core: convert io::Res over to the Drop trait
2013-01-24 16:24:30 -08:00
Erick Tryzelaar
e4d4a1499b
convert most of libcore records into structs
2013-01-24 16:24:30 -08:00
Patrick Walton
ad25e208ee
librustc: Allow &mut
to be loaned; allow self
to be loaned; make &mut
loanable to &
. r=nmatsakis
2013-01-24 13:52:22 -08:00
Patrick Walton
163b97b7bb
librustc: Make C functions unsafe
2013-01-24 13:52:21 -08:00
Daniel Micay
dbfe21edda
document LinearMap::new
2013-01-24 13:36:55 -05:00
Daniel Micay
acde90dc1c
remove old LinearMap constructor
2013-01-24 13:36:04 -05:00
Graydon Hoare
07d0af151a
core: fix windows breakage from 982cf90
, r=burningtree.
2013-01-23 21:57:05 -08:00
Tim Chevalier
a202dcccca
Merge pull request #4594 from thestinger/map
...
more work on the map trait and TreeMap/LinearMap
2013-01-23 20:10:47 -08:00
Tim Chevalier
982cf90dc6
Add a T_SIGNED type to uint template and eliminate step_down variant
...
Handle negative steps properly in range_step, fix order of arguments
in tests, and such.
2013-01-23 18:57:57 -08:00
Huon Wilson
1a6e1e2801
libcore: Correct behaviour of range_step for uint, tests for range* functions.
...
Splits the range_step function into the two directions (up, low -> high,
and down, high -> low) for the uint types, since there is no way to have
`step < 0` for a backwards range.
2013-01-23 18:56:41 -08:00
Huon Wilson
83e3c82d63
libcore: Add range_step and range_rev functions.
...
Closes #1817
2013-01-23 18:56:41 -08:00
Brian Anderson
bc0c5bb447
core: Stop using oldcomm
2013-01-23 17:35:35 -08:00
Brian Anderson
cc9ab2c033
Remove old comm-based weak task interface
2013-01-23 17:35:34 -08:00
Brian Anderson
a3e087cefa
core: Remove private::chan_from_global_ptr. #3915
2013-01-23 17:35:34 -08:00
Brian Anderson
b9608fe423
std: Convert uv_global_loop to use pipes
2013-01-23 17:35:34 -08:00
Brian Anderson
fb9299346a
core: Convert getenv/setenv to use a mutex
...
This much simpler implementation uses a global mutex
and eliminates the kernel environment channel.
2013-01-23 17:35:34 -08:00
Brian Anderson
8852279a9e
core: Add new weak task API
2013-01-23 17:35:31 -08:00
Daniel Micay
7f0fa143bc
switch LinearMap to current constructor convention
2013-01-23 18:01:24 -05:00
Patrick Walton
54b2cad8b3
libsyntax: Remove fn() unsafe { ... }
. r=graydon
2013-01-23 14:41:08 -08:00
Tim Chevalier
10e8ae852d
Merge pull request #4597 from Dretch/atvec-constructors
...
Oops - add the missing pubs!
2013-01-23 14:37:47 -08:00
gareth
ba2a3e8234
Oops - add the missing pubs!
2013-01-23 22:30:56 +00:00
Daniel Micay
591eefd740
improve hashmap/treemap documentation
2013-01-23 16:47:27 -05:00
Daniel Micay
988ce7180d
rm unnecessary usage of 'unsafe' from hashmap
2013-01-23 16:39:09 -05:00
Daniel Micay
8bf9bae303
remove cautionary wording in the hashmap docstring
...
it's pretty solid, at least relative to most of the other modules
2013-01-23 16:29:38 -05:00
Patrick Walton
6dbfb5da0b
libcore: Use LLVM intrinsics for floor; add a new Perlin noise benchmark. r=brson
2013-01-23 11:37:32 -08:00
Daniel Micay
dbeef1d657
remove the LinearMap get_copy method
...
This isn't simpler (or faster) than just doing the copy in the caller,
and it doesn't work for types that can be cloned but not copied.
2013-01-23 14:25:06 -05:00
Daniel Micay
45c9f6a099
add find method to the core::container::Map trait
2013-01-23 14:25:06 -05:00
Daniel Micay
ee0a8c68ab
rename hashmap find_ref/get_ref -> find/get
2013-01-23 14:25:06 -05:00
Daniel Micay
203fcbd0f3
rename hashmap find/get -> find_copy/get_copy
2013-01-23 14:25:06 -05:00
Daniel Micay
b7ef28c33a
rename send_map to hashmap
...
This makes the module much more discoverable, and is in line with the
'treemap' naming.
2013-01-23 14:25:01 -05:00
Trinick
9dc8e96c5f
core: Rename to_mut and from_mut to cast_to_mut and cast_from_mut
2013-01-23 10:09:45 +00:00
Daniel Micay
8cff5c22c3
migrate task/spawn.rs to LinearSet
2013-01-22 21:28:28 -05:00
Daniel Micay
7de5e6c487
migrate gc.rs to LinearSet
2013-01-22 21:28:28 -05:00
gareth
9b27ec8684
Add more constructors for managed vectors (as proposed in issue #4553 )
2013-01-22 22:52:20 +00:00
Tim Chevalier
e02449c41d
Merge pull request #4571 from thestinger/container
...
more work on container traits
2013-01-22 10:57:26 -08:00
Daniel Micay
6f4d86ed90
add a base Container trait
2013-01-22 08:10:08 -05:00
Daniel Micay
d635a6e506
add a container::Map trait
2013-01-22 08:10:08 -05:00
Daniel Micay
ffb9049274
add a Mutable container trait with clear
2013-01-22 08:09:53 -05:00
Tim Chevalier
143039ca43
docs: Fix typo
2013-01-21 19:50:38 -08:00
William Ting
60184d12b6
Update documentation with examples for various int, vec methods.
...
add int::range(), remainder() examples
add vec::foldl(), foldr() examples
tweak
2013-01-21 19:50:38 -08:00
William Ting
04d38f38e7
minor int-template.rs cleanup
2013-01-21 11:15:11 -06:00
Daniel Micay
1f85c711af
fix long lines
2013-01-20 17:07:57 -05:00
Tim Chevalier
b86c90b73a
Merge pull request #4554 from thestinger/set
...
add a Set trait
2013-01-20 13:45:42 -08:00
Daniel Micay
5320e132d1
add a LinearSet type (implementing the Set trait)
2013-01-20 15:12:52 -05:00
Daniel Micay
13d07ad0a6
add a Set trait and implement it for TreeSet
2013-01-20 14:58:19 -05:00
Simon Sapin
9788c41ce7
repr: represent char values as char literals rather than integers.
2013-01-20 12:03:02 +01:00
Tim Chevalier
b72ed5572f
core: Allow set_buffer_ to be referred to as set-buffer
...
After a snapshot, we can take out the set_buffer_ version (pipes
syntax exts use it).
As per #4421
2013-01-18 15:28:34 -08:00
Chris Peterson
a8ff9f2ef9
Rename copy_overlapping_memory() to copy_memory()
2013-01-18 14:38:46 -08:00
Tim Chevalier
9c1476e7a4
Comments: turn XXXes into FIXMEs
2013-01-18 14:21:31 -08:00
Brian Anderson
6b6acde972
Add a license check to tidy. #4018
2013-01-17 23:28:42 -08:00
Brian Anderson
1bf8e57943
Add finally
method for deferred execution
2013-01-17 19:24:52 -08:00
Brian Anderson
db1abbec4c
core: Add private global data interface. #3915
2013-01-17 19:24:50 -08:00
Patrick Walton
f405e41d7a
librustc: Implement write guards for borrowing @mut
to &
or &mut
. r=nmatsakis
2013-01-17 11:50:20 -08:00
Brian Anderson
ac435af73a
Add at_exit function #4450
2013-01-15 18:00:19 -08:00
Brian Anderson
090b247056
Spawn new tasks onto the primary scheduler by default. #3760
2013-01-15 18:00:19 -08:00
Graydon Hoare
84825ee310
librustc: Make the default sigil for block lambdas &
instead of @
.
2013-01-15 17:57:45 -08:00
Nick Desaulniers
bb7d7204e2
Swap return value order in pipes::oneshot Issue #4496
2013-01-15 17:18:00 -08:00
Brian Anderson
0ca369e9dc
Merge pull request #4485 from sanxiyn/use-truncate
...
Use vec::truncate for vec::retain
2013-01-14 14:11:26 -08:00
Brian Anderson
e699058511
Merge pull request #4484 from sanxiyn/test-retain
...
Add a test for vec::retain
2013-01-14 14:09:17 -08:00
Brian Anderson
0e8490757f
Merge pull request #4477 from jld/char-repr
...
Reflect on char as u32, not uint (which may be u64).
2013-01-14 13:39:29 -08:00
Daniel Micay
d0751b6535
spelling fixes for iter module docstrings
2013-01-14 09:46:32 -05:00
Seo Sanghyeon
e368b16f82
Use vec::truncate for vec::retain
2013-01-14 19:45:08 +09:00
Seo Sanghyeon
23b130441a
Add a test for vec::retain
2013-01-14 17:38:15 +09:00
Jed Davis
0e1985eda6
Reflect on char as u32, not uint (which may be u64).
...
Fixes mozilla/rust#4473 .
2013-01-13 19:08:30 -08:00
kyeongwoon
987f824f23
Support ARM and Android
...
Conflicts:
src/libcore/os.rs
src/librustc/back/link.rs
src/librustc/driver/driver.rs
src/librustc/metadata/loader.rs
src/librustc/middle/trans/base.rs
2013-01-13 16:43:39 -08:00
Tim Chevalier
62d1db1d6c
Long lines
2013-01-13 16:34:54 -08:00
Tim Chevalier
07c39b1436
Merge pull request #4474 from tychosci/readlink_safe
...
core: Use libc::readlink function properly
2013-01-13 15:10:33 -08:00
Tim Chevalier
26334b64a2
Merge pull request #4411 from wting/4203_rename_memcpy
...
Rename memcpy, memmove, memset
2013-01-13 14:58:24 -08:00
Jed Davis
1b01629f18
Make vectors (& old ports) of zero-size types allocate one byte each.
2013-01-13 14:37:59 -08:00
Tycho Sci
6441d619ba
core: Use libc::readlink function properly
...
The specification of readlink() says it's not guaranteed that the
returned contents of the symbolic link is null-terminated.
2013-01-14 07:33:47 +09:00
Peter Williams
d5dc66ad31
core: Align cmp::le() with the other implementations
...
Also add comments reminding that IEEE 754 requires unusual semantics for
comparison operators as applied to NaNs (x != x, if x = NaN), in case someone
in the future wants to get clever.
2013-01-13 14:32:34 -08:00
Tim Chevalier
7eae397e58
Merge pull request #4465 from thestinger/option
...
improvements to option module
2013-01-13 14:29:05 -08:00
Daniel Micay
ac85bf356f
add Option methods for in-place mutation
2013-01-13 11:09:09 -05:00
gifnksm
62f2749775
Inlining methods/functions in core.
...
Also inlining some functions which take functions as arguments.
2013-01-14 00:13:44 +09:00
Daniel Micay
3c6da7761b
avoid unwrap in Option::map_consume implementation
2013-01-13 01:38:20 -05:00
Daniel Micay
65a0125f7f
add Option map_consume_default method
2013-01-13 01:37:58 -05:00
Daniel Micay
a33966b2f2
add Option methods for swap_unwrap and map_consume
2013-01-13 00:48:30 -05:00
Tim Chevalier
0bc730f9b0
Merge pull request #4443 from wting/4386_add_privs
...
Adds priv qualifiers where they have been commented out before implementation.
2013-01-11 20:11:57 -08:00
Tim Chevalier
847d30db66
Merge pull request #4445 from apasel422/notop
...
Allow logical negation operator (!) to be overloaded
2013-01-11 20:10:51 -08:00
Brian Anderson
f99d6cab43
Long lines
2013-01-11 17:59:35 -08:00
Brian Anderson
1b1700f44b
Add core::private::run_in_bare_thread
...
This begins executing Rust code in a fresh context with no runtime environment
2013-01-11 14:53:28 -08:00
Andrew Paseltiner
0de7aa5506
allow logical negation operator (!) to be overloaded
2013-01-11 14:31:44 -05:00
William Ting
9fd970ad13
Adds priv qualifiers where they have been commented out before implementation.
...
Updates #4386 .
2013-01-11 02:30:10 -06:00
Patrick Walton
ad2fc50ca1
libcore: Fix core test more. rs=broken
2013-01-10 23:08:17 -08:00
Patrick Walton
c6fe93d9b5
libcore: Fix core test. rs=broken
2013-01-10 22:36:54 -08:00
Patrick Walton
83675895af
libcore: Fix windows bustage. rs=bustage
2013-01-10 21:58:30 -08:00
Patrick Walton
b71381dcc9
libcore: Fix linux/windows bustage. rs=fire
2013-01-10 21:49:31 -08:00
Patrick Walton
ca71c6ec5b
librustc: Make all external functions unsafe. r=tjc
2013-01-10 21:24:08 -08:00
Tim Chevalier
90a0dd4008
core: Change XXXs into proper FIXMEs with issue numbers
2013-01-10 15:35:41 -08:00
Tim Chevalier
603e13cc02
Use deriving_eq for Task
2013-01-10 15:35:41 -08:00
Niko Matsakis
737e115646
mode: reset mode on entry to fn body.
...
This is an interim fix to address the "Beware!" unsoundness. I have a
more comprehensive rewrite of mode.rs in the pipeline.
r=pcwalton
2013-01-10 13:17:25 -08:00
William Ting
5cfde77bca
Rename memcpy, memmove, memset to prevent any confusion with the C equivalents.
...
Closes #4203 .
2013-01-10 01:24:41 -06:00
Patrick Walton
349e772bc5
libcore: Fix missing off_t
import on Mac. rs=bustage
2013-01-09 21:15:27 -08:00
Patrick Walton
bea3a7a14c
libcore: Some more fixes to Windows libc stuff. rs=bustage
2013-01-09 21:14:28 -08:00
Patrick Walton
bd737d41a1
libcore: Fix Windows resolve errors. rs=bustage
2013-01-09 20:39:37 -08:00
Patrick Walton
1cc22a35df
libcore: Fix import in libc. rs=bustage
2013-01-09 19:25:33 -08:00
Graydon Hoare
6644da5805
core: fix crashing vec methods due to non-working moved self.
2013-01-09 17:21:21 -08:00
Niko Matsakis
2b92962aa2
A collection of refactorings that I found it hard/tiresome to divide:
...
- Make `extern fn()` assignable to any closure type, rather than
a subtype.
- Remove unused int_ty_set and float_ty_set
- Refactor variable unification and make it more DRY
- Do fn sub/lub/glb on the level of fn_sig
- Rename infer::to_str::ToStr to infer::to_str::InferStr
- Capitalize names of various types
- Correct hashing of FnMeta
- Convert various records-of-fns into structs-of-fns. This is both
eliminating use of deprecated features and more forwards compatible
with fn reform.
r=pcwalton
2013-01-09 14:59:07 -08:00
Graydon Hoare
11a307294a
rustc: yet more arch-specific fallout from 2db3abd
2013-01-09 14:11:55 -08:00
Graydon Hoare
d0fa688f56
rustc: more arch-specific fallout from 2db3abd
2013-01-09 10:43:16 -08:00
Graydon Hoare
8436a4460e
core: try to fix arch- and platform-specific fallout from 2db3abd
2013-01-09 09:26:59 -08:00
Graydon Hoare
9b8c04e236
core: ignore recent should_fail tests on windows
2013-01-09 09:26:59 -08:00
Erick Tryzelaar
c766924f44
core: add vec.filter that moves elems out of the vector
2013-01-09 08:55:37 -08:00
Erick Tryzelaar
2891a49f0d
core: rename vec.filter to vec.filtered
2013-01-09 08:55:37 -08:00
Erick Tryzelaar
9a7e261562
core: add vec.partition and vec.partitioned
2013-01-09 08:55:37 -08:00
Erick Tryzelaar
c55787d009
core: add a vec.consume method
2013-01-09 08:55:37 -08:00
Erick Tryzelaar
8f9a507973
core: add self to all vec methods
2013-01-09 08:55:37 -08:00
Erick Tryzelaar
dc7183ed0e
core: rename MutableVector to OwnedVector
2013-01-09 08:55:37 -08:00
Erick Tryzelaar
d1b7d44b8c
core: inline all vec methods and add whitespace
2013-01-09 08:55:37 -08:00
Graydon Hoare
f6dd2d219e
core: fix libc linux fallout from 2db3abddcd
2013-01-09 08:04:18 -08:00
Patrick Walton
2db3abddcd
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37
Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
...
This reverts commit a8d37af247
.
2013-01-08 19:29:16 -08:00
Patrick Walton
a8d37af247
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 19:27:57 -08:00
Brian Anderson
3b71d14442
Inject std when --test. #1127 , #3241
2013-01-08 14:58:39 -08:00
ILyoan
2d3c22ae59
arrange core::os::consts
2013-01-08 14:35:28 -08:00
asdf
dd73dd0e37
removing checks from vec::bytes::memcpy and memmove as are duplicated from raw::
2013-01-08 13:25:23 -08:00
asdf
4096c9f25f
adding bound checks for raw::memcpy and memmove
2013-01-08 13:25:23 -08:00
Andrew Paseltiner
1d4c5d90bd
fmt: add unit tests
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
73649f36e8
fmt: derive Eq for all types
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
0429493363
fmt: fix formatting and style
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
428abb3d97
fmt: simplify parse_fmt_string
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
9e5a4166d5
fmt: simplify parse_conversion
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
af298deff7
fmt: simplify parse_parameter
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
4550cb0562
fmt: simplify parse_precision
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
9c383deaa6
fmt: simplify parse_count
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
f4bc9e6d57
fmt: simplify parse_flags
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
51b141e3e4
fmt: simplify parse_type
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
0a17ab2a9c
fmt: replace parse_* structural records with struct Parsed<T>
2013-01-07 17:22:01 -05:00
Andrew Paseltiner
1a2a8975bc
fmt: replace Conv record with struct Conv
2013-01-07 17:22:01 -05:00
Patrick Walton
9f387926fc
librustc: Fold rt items into lang items. Shaves another 10% or so off hello world compile time.
2013-01-07 12:21:34 -08:00
Tim Chevalier
89acd1f57f
Rename option::get_default => get_or_default, get_zero => get_or_zero
2013-01-04 16:01:26 -08:00
Tim Chevalier
4d8cc3f003
Make either::{partition, flip, to_result} take their arguments by-value
...
Addresses an XXX
r=pcwalton
2013-01-04 15:39:31 -08:00
Graydon Hoare
62f6f46072
core: fix windows breakage, r=burningtree.
2013-01-04 15:38:56 -08:00
Tim Chevalier
1f1e7e9616
Add option::get_zero
...
r=brson
Closes #3797
2013-01-04 00:46:55 -08:00
Andrew Paseltiner
a933cdfbf1
clean up condition module:
...
* use Drop trait in Guard
* fix formatting
* remove bare function in Condition.raise_default
* use moved types instead of borrowed pointers in Condition.{raise,trap}
* import common functions
2013-01-03 15:53:06 -08:00
Erick Tryzelaar
392708e3b1
core: convert an XXX into a FIXME.
2013-01-02 10:40:47 -05:00
Tim Taubert
4b1d2dc884
reset LinearMap.size when expanding buckets
2012-12-30 19:38:42 +01:00
Tim Chevalier
cef153947d
Long lines
2012-12-28 13:35:15 -08:00
Tim Chevalier
7af1080f5e
Merge pull request #4308 from steveklabnik/patch-1
...
Improve documentation for each.
2012-12-28 11:52:16 -08:00
Steve Klabnik
5ec3aba8cc
Improve documentation for each.
...
Add description of arguments, and an example.
2012-12-28 01:12:28 -05:00
Patrick Walton
e26ca35b08
librustc: Fix the test runner, the condition system, and core test. rs=bustage
2012-12-27 17:53:04 -08:00
Patrick Walton
57c599914a
librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon
2012-12-27 10:02:54 -08:00
Patrick Walton
6b659392ea
libcore: Add symlink(2) to libc. rs=trivial
2012-12-27 10:02:51 -08:00
Tim Chevalier
6dbb025267
Fix wayward search and replace; unbreak build
2012-12-24 18:29:02 -08:00
gareth
fddc849d75
Convert core::io to use explicit self (for issue #4118 and issue #2004 )
2012-12-24 18:29:02 -08:00
Chris Peterson
c1e58aad70
core: Mark some functions as pure
2012-12-24 18:29:02 -08:00
Graydon Hoare
329316ce15
bump 0.5 => 0.6, redirect some URLs in docs.
2012-12-24 18:29:01 -08:00
Erick Tryzelaar
50902bb302
Fix Option::unwrap_err.
2012-12-24 18:29:01 -08:00
Tim Chevalier
46122bf333
Fix wayward search and replace; unbreak build
2012-12-24 12:37:45 -08:00
Tim Chevalier
66dc4898c7
Merge pull request #4278 from cpeterso/incoming-pure-functions
...
Mark some more core and std functions as pure
2012-12-24 11:33:22 -08:00
gareth
feff3a9c6c
Convert core::io to use explicit self (for issue #4118 and issue #2004 )
2012-12-24 18:52:53 +00:00
Chris Peterson
6d8621ae7f
core: Mark some functions as pure
2012-12-23 14:37:44 -08:00
Tim Chevalier
197a1f9cfe
Merge pull request #4243 from erickt/incoming
...
Fix a bug in Result::unwrap_err (and minor cleanup)
2012-12-23 13:49:32 -08:00
Graydon Hoare
dbd36111fe
bump 0.5 => 0.6, redirect some URLs in docs.
2012-12-21 15:35:49 -08:00
Erick Tryzelaar
5e94407a94
Fix Option::unwrap_err.
2012-12-20 21:16:02 -08:00
Erick Tryzelaar
e8102e73a9
core: Add a Zero and One trait to num
...
I believe these are the last traits we need in order
to start grouping our numerical types into mathematical
groups and rings.
2012-12-20 07:15:04 -08:00
Erick Tryzelaar
2ad41b881c
core: add unwrap methods to dvec, either, and mutable
2012-12-18 20:54:13 -08:00
Erick Tryzelaar
a0ef334179
core: use movable self to clean up option/result.
2012-12-18 20:54:13 -08:00
Erick Tryzelaar
938058b004
Fix vec::flat_map_to_vec method
2012-12-18 20:48:51 -08:00
Graydon Hoare
8e28f23c60
core: add macro_rules! for "condition! { c: in -> out; }".
2012-12-18 17:22:27 -08:00
Graydon Hoare
6d4fbd4f9e
core: fix remaining repr bugs, r=burningtree.
2012-12-18 14:35:20 -08:00
Erick Tryzelaar
85bb1fc2c4
Change iter::find's closure to take a ref
2012-12-17 22:01:38 -08:00
Erick Tryzelaar
88962eeed8
core: Add &self to core::iter methods
2012-12-17 22:01:38 -08:00
Graydon Hoare
7ab66a46b7
core: remove old repr system, enable newer one. Close #3109 .
2012-12-17 16:55:40 -08:00
Brian Anderson
5bf7ba0773
Register snapshots
2012-12-17 16:44:27 -08:00
Brian Anderson
68998724c6
Revert "Register snapshots"
...
This reverts commit d6d12d90ff
.
2012-12-17 16:26:44 -08:00
Brian Anderson
d6d12d90ff
Register snapshots
2012-12-17 16:22:21 -08:00
Brian Anderson
8311c94db4
Merge pull request #4200 from ttaubert/issue-2649-rewrite-to_str_bytes
...
rewrite uint::to_str_bytes to avoid raw pointers
2012-12-17 12:43:28 -08:00
Tim Taubert
2f3d4f6181
rewrite uint::to_str_bytes to avoid raw pointers
2012-12-15 18:45:40 +01:00
Brian Anderson
309cdfd835
Remove more uses of 'move' from core::vec
2012-12-14 17:12:41 -08:00
Brian Anderson
2c21f348a4
Rewrite core::vec::shift to not allocate
2012-12-14 17:09:44 -08:00
Brian Anderson
e6d1b02359
Rename core::comm to core::oldcomm
2012-12-14 14:59:32 -08:00
Brian Anderson
80ef7243ea
Remove spawn_listener, spawn_conversation
...
These are not needed in a pipe-based Rustiverse
2012-12-14 14:59:32 -08:00
Brian Anderson
01a6524d00
Stop using spawn_conversation in chan_from_global_ptr
2012-12-14 14:59:32 -08:00
Brian Anderson
ebc19034ee
Fix broken tests
2012-12-14 14:26:57 -08:00
Brian Anderson
e7ef82dd70
Change some uses of static methods to use the trait path
2012-12-13 16:15:08 -08:00
Brian Anderson
d809e89c26
Replace some Eq impls with deriving_eq
2012-12-13 16:14:28 -08:00
Brian Anderson
ed4fac01b5
Rename Send trait to Owned
2012-12-13 15:52:50 -08:00
Brian Anderson
a277081ee4
Rename Owned trait to Durable
2012-12-13 15:52:50 -08:00
Patrick Walton
4c2e4c37ce
librustc: Make use
statements crate-relative by default. r=brson
2012-12-13 13:05:22 -08:00
Brian Anderson
0d59e86d80
core: Remove some uses of 'move'
2012-12-12 19:15:18 -08:00
Brian Anderson
948754b572
Fix the test for transmute
2012-12-12 18:41:30 -08:00
Tim Chevalier
38bd694df1
Reverse the order of the results of pipes::stream
...
As per #3637 .
2012-12-11 19:23:28 -08:00
Erick Tryzelaar
3657d5606d
core: add Eq impl to LinearMap.
2012-12-11 13:57:57 -08:00
Brian Anderson
3fcdb7d6a7
Adjust the die macro to only accept ~str and to work in statement position
2012-12-10 18:16:22 -08:00
Graydon Hoare
12c32e944d
Add license boilerplate to more files.
2012-12-10 17:32:58 -08:00
Brian Anderson
04d9ea6f32
core: Fix capitalization in docs
2012-12-10 15:42:36 -08:00
Brian Anderson
1b481017ac
Minor cleanups to pipes and serialization
2012-12-10 15:42:34 -08:00
Brian Anderson
9723d3ac2f
Remove transitional code
2012-12-09 17:59:21 -08:00
Patrick Walton
e9e3d02b7d
libcore: Fix Windows-only pattern in run.rs. rs=bustage
2012-12-07 21:52:39 -08:00
Brian Anderson
4ab1c8805a
Convert Num to explicit self
2012-12-05 19:23:13 -08:00
Patrick Walton
7a065f2434
libcore: Fix some more coretest bustage. rs=bustage
2012-12-05 15:30:00 -08:00
Patrick Walton
1282fc8074
librustc: Hook borrow check loan checking up to the moves-based-on-type infrastructure. rs=helps-unbreak-the-build
2012-12-05 15:07:48 -08:00
Brian Anderson
0b5877afb8
Merge remote-tracking branch 'rntz/tuple-iterbytes'
...
Conflicts:
src/libcore/to_bytes.rs
2012-12-05 11:58:35 -08:00
Patrick Walton
3440482d8d
test: Fix a bunch of test cases. rs=burning
2012-12-05 11:40:47 -08:00
Patrick Walton
33c1e47c1b
librustc: Implement moves based on type. r=nmatsakis
2012-12-04 15:38:04 -08:00
Patrick Walton
d1ebdbeb6c
librustc: Implement explicit self for Add and Index; add a hack in the borrow checker to support this. r=nmatsakis
2012-12-04 14:51:31 -08:00
Graydon Hoare
94be145169
core: rename box to managed. Close #4079 .
2012-12-03 17:45:19 -08:00
Graydon Hoare
2a5713ed5c
core: rename unit to nil. Close #4080 .
2012-12-03 17:28:19 -08:00
Graydon Hoare
00c856c0b1
Update license, add license boilerplate to most files. Remainder will follow.
2012-12-03 17:12:14 -08:00
Michael Arntzenius
5b6c1a2950
call out to iter_bytes_{2,3} in IterBytes instances for pairs, triples
...
This means we will exit early if requested based on the return value of the
callback we're given.
2012-12-02 20:01:28 -05:00
Michael Arntzenius
ef2c404e01
libcore/to_bytes.rs: fix IterBytes instances for pairs, triples to not cause ICE when used
2012-12-02 17:48:32 -05:00
Patrick Walton
f34833abfc
librustc: Make a.b()
always a method call. r=nmatsakis
2012-11-30 20:41:46 -08:00
Tim Chevalier
bde2dcc8d5
Merge pull request #4085 from andrew-d/andrew-fix-typo
...
Fix small typo in kinds documentation
2012-11-30 12:48:28 -08:00
Andrew Dunham
e19d8f7ae5
Fix small typo in kinds documentation
2012-11-30 15:39:44 -05:00
Graydon Hoare
d783f4d7bb
libs: Remove transitionary material on iter_bytes, add workcache to build.
2012-11-30 10:33:16 -08:00
Brian Anderson
38ba2c4941
core: Add docs about kind traits
2012-11-30 01:52:26 -08:00
Brian Anderson
b52a4b412e
core: Make core.rc more readable. Cleanup
2012-11-30 01:32:53 -08:00
Brian Anderson
3ed9fbd63c
impls of traits cannot define methods on the anonymous trait
2012-11-29 22:07:49 -08:00
Brian Anderson
28ecef7bf5
core: Add impls of Eq and Ord for f32, f64
2012-11-29 18:10:11 -08:00
Patrick Walton
a0617eae68
librustc: Eliminate most expressions of the form a.b()
that are not method calls. rs=refactoring
2012-11-29 17:51:56 -08:00
Paul Stansifer
9814e58815
No longer parse the delimiters of the RHS of a macro as part of the expansion.
2012-11-29 12:09:10 -08:00
Patrick Walton
9e1c9be16f
librustc: Make the Drop trait use explicit self
2012-11-29 11:06:15 -08:00
Brian Anderson
5a282ec26f
core: Convert some records to structs
2012-11-28 21:50:09 -08:00
Brian Anderson
65bd40e300
Remove uses of #[merge]
2012-11-28 17:09:26 -08:00
Brian Anderson
9b95d51131
core: Remove old template files
2012-11-28 15:26:55 -08:00
Brian Anderson
fc06114ddf
Merge remote-tracking branch 'brson/companion' into incoming
...
Conflicts:
src/compiletest/compiletest.rs
src/libcargo/cargo.rs
src/libcore/core.rs
src/librustc/rustc.rs
src/librustdoc/rustdoc.rc
2012-11-28 13:17:33 -08:00
Brian Anderson
8179e268ef
Register snapshots
2012-11-28 12:33:00 -08:00
Patrick Walton
669fbddc44
librustc: Add explicit self to IterBytes. r=nmatsakis
2012-11-28 11:36:04 -08:00
Patrick Walton
07f4031bb4
libsyntax: Implement a macro die!
to replace the fail
expression. r=brson
2012-11-28 11:28:56 -08:00
Michael Arntzenius
d2d6d955f4
libcore/to_bytes.rs: add IterBytes impls for pairs and triples. r=pcwalton
2012-11-28 11:27:05 -08:00
Michael Arntzenius
d718bc292d
libcore/to_bytes.rs: add IterBytes impls for pairs and triples
2012-11-28 12:35:08 -05:00
Brian Anderson
b21e9d52de
core: Add Clone trait
2012-11-27 11:08:19 -08:00
Patrick Walton
7bc29c62d0
libcore: Add explicit self to all overloaded operators but Add and Index. r=brson
2012-11-26 19:35:52 -08:00
Brian Anderson
be6613e048
Remove the crate language
2012-11-26 18:13:54 -08:00
Brian Anderson
917ee7e5b1
Ignore two failure tests on windows
2012-11-26 14:48:48 -08:00
Gareth Daniel Smith
689f6ce5d0
Add insert and remove methods to vecs - as proposed in issue #4028 .
2012-11-26 14:34:50 -08:00
Brian Anderson
f648de74a5
Ignore a should_fail test on windows
2012-11-25 13:52:07 -08:00
Tim Chevalier
455d73cb86
[libs] Remove unread_byte method from core::io::Reader
...
Method isn't used. See discussion on #2738 and #4031
Closes #2738
2012-11-24 14:39:21 -08:00
Tim Chevalier
55ca36196d
Merge pull request #4026 from eholk/float-perf
...
Inline numeric operations for floats.
2012-11-24 09:01:23 -08:00
Gareth Daniel Smith
f841d43f54
Fix a bug where read(buf, len) would fail if buf was big enough and succeed if it was too small ... which is the opposite of correct.
2012-11-24 15:19:51 +00:00
Eric Holk
c961d214d9
Inline numeric operations for floats.
2012-11-23 13:27:02 -08:00
Graydon Hoare
0c8a009dc9
libcore: fix build breakage on win32 stat.
2012-11-21 15:35:47 -08:00
Erick Tryzelaar
a27f5239bd
libcore: Add stat methods to paths
...
Should we return the posix types, or should we just use i64s?
Should we expose platform specific stat fields?
2012-11-20 16:39:31 -08:00
Erick Tryzelaar
20c11ca757
libcore: add stat functions to libc
2012-11-20 16:39:31 -08:00
Erick Tryzelaar
28745ce7c8
libcore: Clean up the path tests
2012-11-20 16:39:30 -08:00
Erick Tryzelaar
ab5d84258e
Add PosixPath and WindowsPath constructor fns
2012-11-20 16:39:30 -08:00
Erick Tryzelaar
e70b481803
libcore: minor os.rs cleanup
2012-11-20 16:39:30 -08:00
Erick Tryzelaar
079c768df5
libcore: Fix a typo
2012-11-20 16:39:30 -08:00
Erick Tryzelaar
9539724e8b
Remove parentheses from closure argument types
2012-11-20 16:39:30 -08:00
Graydon Hoare
34b7db3bbc
Merge pull request #4001 from jesse99/features/docs
...
Features/docs
2012-11-19 16:10:31 -08:00
Patrick Walton
318e534895
rustc: Implement explicit self for Eq and Ord. r=graydon
2012-11-19 15:33:11 -08:00
Jesse Jones
e5c9a8a479
Fixed lint problems
2012-11-18 17:05:04 -08:00
Jesse Jones
0fd9c9d054
Made from_str pure
2012-11-18 13:25:27 -08:00
Jesse Jones
361aea94f2
Fixing warnings for long and blank lines
2012-11-18 13:25:26 -08:00
Jesse Jones
6d99a2f8a9
Made more stuff pure.
...
escape functions in char, io.with_str_reader, base64 and md5sum, cell.empty_cell
and is_empty.
2012-11-18 13:25:26 -08:00
Jesse Jones
c5ab47e7ba
Made Result.get, get_ref, is_ok, is_err, and iter methods pure.
...
Note that the function versions were already pure.
2012-11-18 13:25:25 -08:00
Jesse Jones
68c852ad3a
Made Map.contains_key, contains_key_ref, and get pure.
2012-11-18 13:25:24 -08:00
Jesse Jones
d107e586ea
Documented fmt! expression syntax.
...
Closes #3280
2012-11-18 11:00:39 -08:00
Patrick Walton
64305174c9
librustc: Fix cross-crate reexports. rs=blocking-servo
2012-11-15 17:15:02 -08:00
Tim Chevalier
f67904ca40
Un-ignore test_from_str and test_parse_buf
...
Closes #2609
2012-11-15 16:49:57 -08:00
Graydon Hoare
59a034a63f
rt: bump log levels up by one, fix tautological-compare error (and permit turning off logging entirely).
2012-11-15 12:03:54 -08:00
Brian Anderson
1ead8aa0b5
Merge pull request #3954 from burg/result-chain
...
Fix Result::chain, Result::chain_err to not require Copy bounds.
2012-11-12 18:05:29 -08:00
Brian J. Burg
37ed7fcaae
Fix Result::chain, Result::chain_err to not require Copy bounds.
2012-11-12 17:53:08 -08:00
Brian Anderson
c78020ef4f
Whitespace
2012-11-08 17:11:44 -08:00
Brian J. Burg
a5718ba377
Change option::expect to not require a Copy bound, and move instead.
2012-11-08 16:25:22 -08:00
Patrick Walton
0fc952372a
rustc: Support irrefutable patterns in function arguments. r=nmatsakis
2012-11-07 19:29:30 -08:00
Patrick Walton
2904095570
rustc: Implement the Drop trait. r=brson
2012-11-07 12:34:32 -08:00
Zack Corr
a54d046174
Implement Ptr trait for mutable unsafe pointers. Closes #3926 .
2012-11-07 16:24:29 +10:00
Graydon Hoare
92e3a8c17e
rustc: reuse const vals, translate fn paths as consts. Close #2530 .
2012-11-06 17:13:52 -08:00
Brian Anderson
45a908cad0
Merge pull request #3916 from Dretch/iofix
...
More methods/docs/tests for core::io
2012-11-04 12:51:34 -08:00
Gareth Daniel Smith
fd6f62f9c7
Add more doc-comments for Reader, ReaderUtil, Writer and WriterUtil (loosely associated with issue #2004 ).
2012-11-04 18:11:37 +00:00
Gareth Daniel Smith
0aba903de7
Add size-specific int reading methods to ReaderUtil to match the existing int writing methods in WriterUtil (for issue #2004 ).
2012-11-04 10:14:49 +00:00
Tim Chevalier
563aa0bf6c
Remove the last use of rustrt::rust_compare_and_swap_ptr
...
Closes #3527
r=brson
2012-11-03 14:11:30 -07:00
Tim Chevalier
a006608276
Remove stage0 stuff that was awaiting snapshot
...
and re-register snapshots
Just removing unneeded code, no review
2012-11-03 14:04:32 -07:00
Gareth Daniel Smith
a42d2d408a
Fix a bug where .write([]) would always fail.
2012-11-03 18:48:02 +00:00
Tim Chevalier
4876eb708c
Fix #1996 (pending snapshot)
...
Change int to uint in some extfmt code. Remove the #[cfg(stage0)] code
after a snapshot.
2012-11-02 12:01:38 -07:00
Patrick Walton
ad02510258
libcore: Implement a memory-safe "each_val" for data in aliasable, mutable locations
2012-11-02 10:17:32 -07:00
Brian Anderson
b62844e755
core: peek returns false for terminated pipes. Closes #3905
2012-11-02 00:57:44 -07:00
Graydon Hoare
b7872fa13e
core: fix breakage from recent merge.
2012-10-30 10:33:19 -07:00
Mahmut Bulut
f938714be1
Remove trait of TimesIx
2012-10-30 15:19:14 +02:00
Mahmut Bulut
ac92cc8898
Removing iter::TimesIx
2012-10-28 22:36:01 +02:00
Tim Chevalier
47baebc68c
Remove un-needed comparisons, suppress warnings
2012-10-27 17:07:45 -07:00
Tim Chevalier
af842bf76c
Rename core::uniq to core::owned
...
No review.
Closes #3841
2012-10-25 14:48:28 -07:00
Patrick Walton
ce23a99925
libcore: Make a few more dvec functions inline. Improves profile of Servo. rs=me
2012-10-25 10:23:37 -07:00
Brian Anderson
b2d5acd6bc
Merge remote-tracking branch 'brson/futures'
2012-10-24 20:29:01 -07:00
Niko Matsakis
1a3a70760b
Implement proper subtyping for region fn types (part of #2263 )
2012-10-24 18:56:31 -07:00
Brian Anderson
d29962f0eb
Move futures to std
2012-10-23 14:46:49 -07:00