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