Patrick Walton
8b56a8380b
librustc: Modify all code to use new lifetime binder syntax
2013-03-26 21:30:17 -07:00
Patrick Walton
be9bddd463
libcore: Remove pure
from libcore. rs=depure
2013-03-22 10:29:17 -07:00
Patrick Walton
e78f2e2ac5
librustc: Make the compiler ignore purity.
...
For bootstrapping purposes, this commit does not remove all uses of
the keyword "pure" -- doing so would cause the compiler to no longer
bootstrap due to some syntax extensions ("deriving" in particular).
Instead, it makes the compiler ignore "pure". Post-snapshot, we can
remove "pure" from the language.
There are quite a few (~100) borrow check errors that were essentially
all the result of mutable fields or partial borrows of `@mut`. Per
discussions with Niko I think we want to allow partial borrows of
`@mut` but detect obvious footguns. We should also improve the error
message when `@mut` is erroneously reborrowed.
2013-03-18 17:21:16 -07:00
Patrick Walton
352c070365
librustc: Convert all uses of old lifetime notation to new lifetime notation. rs=delifetiming
2013-03-18 17:21:14 -07:00
Brian Anderson
82f190355b
Remove uses of log
2013-03-11 23:19:42 -07:00
Brian Anderson
7e5995197f
core: Convert obsolete fn syntax
2013-03-11 15:42:00 -07:00
Jeff Olson
3aa92a91c9
core: convert asserts to fail_unless!
2013-03-11 15:38:55 -07:00
Jeff Olson
a69a2acfba
rt/core: port os::list_dir to rust ref #4812
2013-03-11 15:38:55 -07:00
Jeff Olson
53db6c7e2a
core: rt/core: impl os::env() in rust ref #4812
2013-03-11 15:38:55 -07:00
Patrick Walton
d18f785457
librustc: Replace all uses of fn()
with &fn()
. rs=defun
2013-03-11 09:35:58 -07:00
Patrick Walton
d661711cc2
test: Fix tests.
2013-03-07 22:37:58 -08:00
Patrick Walton
d7e74b5e91
librustc: Convert all uses of assert
over to fail_unless!
2013-03-07 22:37:57 -08:00
Patrick Walton
fd271adc75
libcore: Remove extern mod { ... }
from libcore. rs=deexterning
2013-03-07 22:32:51 -08:00
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
bors
afd6196d7b
auto merge of #5233 : bstrie/rust/deimpselfcore, r=graydon
2013-03-05 08:12:51 -08:00
Ben Striegel
9db61e0c21
De-implicit-self libcore
2013-03-04 22:36:15 -05: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
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
Jihyun Yu
95bc9ea26d
Remove REC, change related tests/docs
2013-03-02 12:57:05 +09:00
Brian Anderson
bcf626812b
Rename core::private to core::unstable. #4743
2013-03-01 14:55:47 -08: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
Luqman Aden
cc89029942
libcore: Remove ptr::mut_addr_of since &mut is coerced to *mut
2013-02-14 18:36:10 -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
Tim Chevalier
9123c58526
core: Remove transitional code
2013-02-07 18:26:43 -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
Patrick Walton
366812a5c3
librustc: Change self
as a type to Self
everywhere. r=brson
2013-01-30 19:52:45 -08:00
Patrick Walton
0c1d9befb3
librustc: Speed up byte copy operations. r=nmatsakis
2013-01-29 22:15:06 -08:00
Patrick Walton
54b2cad8b3
libsyntax: Remove fn() unsafe { ... }
. r=graydon
2013-01-23 14:41:08 -08:00
Chris Peterson
a8ff9f2ef9
Rename copy_overlapping_memory() to copy_memory()
2013-01-18 14:38:46 -08:00
Tim Chevalier
62d1db1d6c
Long lines
2013-01-13 16:34:54 -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
gifnksm
62f2749775
Inlining methods/functions in core.
...
Also inlining some functions which take functions as arguments.
2013-01-14 00:13:44 +09:00
Patrick Walton
ca71c6ec5b
librustc: Make all external functions unsafe. r=tjc
2013-01-10 21:24:08 -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
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
Chris Peterson
6d8621ae7f
core: Mark some functions as pure
2012-12-23 14:37:44 -08:00
Graydon Hoare
12c32e944d
Add license boilerplate to more files.
2012-12-10 17:32:58 -08:00
Brian Anderson
b52a4b412e
core: Make core.rc more readable. Cleanup
2012-11-30 01:32:53 -08:00
Brian Anderson
5a282ec26f
core: Convert some records to structs
2012-11-28 21:50:09 -08:00
Brian Anderson
8179e268ef
Register snapshots
2012-11-28 12:33:00 -08:00
Patrick Walton
318e534895
rustc: Implement explicit self for Eq and Ord. r=graydon
2012-11-19 15:33:11 -08:00
Zack Corr
a54d046174
Implement Ptr trait for mutable unsafe pointers. Closes #3926 .
2012-11-07 16:24:29 +10: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
Niko Matsakis
1a3a70760b
Implement proper subtyping for region fn types (part of #2263 )
2012-10-24 18:56:31 -07:00
Tim Chevalier
202c8fd0eb
Kill bootstrapping code in ptr
2012-10-04 16:48:57 -07:00
Tim Chevalier
65c96f849f
Forbid deprecated modes again in core
...
Sadly, there's only one file that requires deprecated modes
(stackwalk)... So, forbid them everywhere else.
2012-10-04 16:48:57 -07:00
Patrick Walton
9284179311
libstd: Switch off legacy modes in both core and std.
2012-10-02 12:20:06 -07:00
Tim Chevalier
b18320446e
Move over to calling ptr::addr_of
...
Everything should now call ptr::addr_of instead of
ptr::p2::addr_of. Only the pipes macro code when compiled
by stage0 will call ptr::p2::addr_of. Needs a snapshot to get
rid of that.
2012-10-01 15:12:09 -07:00
Patrick Walton
9b4db17630
libcore: Implement a sys::args() on Mac
2012-10-01 14:36:55 -07:00
Tim Chevalier
3639d38d5c
Add a demoded version of ptr::addr_of
...
Currently, the new version is ptr::p2::addr_of and the old one is
ptr::addr_of. This is kind of cheesy, but I need a snapshot before I
can ditch the old version, since the pipe compiler generates calls to
addr_of.
core is converted over to use the new version, std is not.
2012-09-28 22:19:01 -07:00
Graydon Hoare
ad951b5976
De-export ptr, hash. Part of #3583 .
2012-09-28 16:27:28 -07:00
Niko Matsakis
21519bc7e0
demode vec
2012-09-28 13:27:45 -07:00
Patrick Walton
cd79e1d1b2
libcore: De-export ptr, send_map, and task::local_data
2012-09-26 17:47:29 -07:00
Brian Anderson
afd91f8a56
Register snapshots. Remove redundant Eq impls, Makefile hacks
2012-09-23 23:01:49 -07:00
Graydon Hoare
dffe188991
Install new pub/priv/export rules as defaults, old rules accessible under #[legacy_exports];
2012-09-21 18:11:43 -07:00
Patrick Walton
9117dcb968
rustc: De-mode all overloaded operators
2012-09-20 09:48:05 -07:00
Brian Anderson
2906f2de31
core: Rename 'unsafe' mod to 'cast'
2012-09-18 19:36:25 -07:00
Brian Anderson
2cdb23bbc0
Replace uses of 'unchecked' with 'unsafe'
2012-09-18 11:31:57 -07:00
Patrick Walton
bc96ea2a18
libcore: Implement a box annihilator, not called yet
2012-09-14 16:13:13 -07:00
Niko Matsakis
2f6b66ecd3
s/vec::as_buf/vec::as_imm_buf/, fix comment, remove set.rs
...
hat tip to @jruderman
2012-09-13 13:24:33 -07:00
Brian Anderson
ff54ac8e59
Rename vec::unsafe to vec::raw
2012-09-12 17:45:36 -07:00
Niko Matsakis
5d540de769
fixup mutability of vec::each, make iter_bytes pure
...
also, change DVec() to work with imm vectors rather than mut ones
2012-09-12 13:29:31 -07:00
Brian Anderson
298eb8c726
Convert 'import' to 'use'. Remove 'import' keyword.
2012-09-10 19:04:26 -07:00
Patrick Walton
feb014eb3c
rustc: Add an "ne" method to the Eq trait, and implement it everywhere
2012-09-07 12:24:48 -07:00
Patrick Walton
437073868e
libcore: "import" -> "use"
2012-09-04 11:12:17 -07:00
Brian Anderson
a80b7dc709
Fix use of reinterpret_cast in to_mut_unsafe_ptr
2012-09-02 16:03:37 -07:00
Patrick Walton
f03ed73c5e
libcore: Add ptr::to_mut_unsafe_ptr
2012-09-02 15:54:24 -07:00
Brian Anderson
d777e51333
Demode reinterpret_cast
2012-09-01 18:18:29 -07:00
Patrick Walton
a1c11cab2d
rustc: Make <=
, >=
, and >
use traits as well
2012-08-29 19:23:15 -07:00
Patrick Walton
96534365c2
rustc: Make <
and =
into traits
2012-08-29 18:25:22 -07:00
Niko Matsakis
0a01d82f6f
preliminary work on making future's sendable
...
also various improvements to the ptr casting fns:
- rename assimilate() to to_unsafe_ptr() (fixes #3110 )
- introduce `unsafe::copy_lifetime()` to copy the lifetime from one ptr to another
2012-08-27 19:56:16 -07:00
Patrick Walton
303e105677
libcore: Fix equality for pointers... again
2012-08-27 17:42:47 -07:00
Patrick Walton
32b13ce2ce
libcore: Fix signature of the impl for *T
2012-08-27 17:37:41 -07:00
Patrick Walton
9c04454e7b
libcore: Implement equality for pointers
2012-08-27 17:33:22 -07:00
Brian Anderson
9c6890f488
Convert more core types to camel case
2012-08-15 17:46:05 -07:00
Brian Anderson
74c69e1053
Convert more core types to camel case
2012-08-15 14:14:20 -07:00
Ben Blum
589ee65fd4
Add rw_arc.downgrade() + std and cfail tests. Tons of region FIXMEs... (cf #2282 , #3154 )
2012-08-14 17:53:18 -04:00
Ben Blum
6c4843d9da
Add ptr::ref_eq()
2012-08-13 17:18:24 -04:00
Brian Anderson
6a0720b439
Convert impls to new syntax
2012-08-08 18:19:24 -07:00
Tim Chevalier
948172b93f
Make comparisons between region pointers work
...
Region pointers were considered a scalar type, so compare_scalar_type would
get called to compare region pointers in trans. This would fail, since
compare_scalar_type has no case for region pointers.
Changed type_is_scalar to return false for region pointers. This had the side
effect of breaking casts to types of the form &T. To ameliorate that, I added
library functions ptr::assimilate (taking a &T to a *T) and ptr::to_uint
(taking a &T to a uint), both of which use reinterpret_cast.
While I was at it, I removed ty::type_has_resources, which is dead code.
2012-08-02 23:53:45 -07:00
Brian Anderson
b355936b4d
Convert ret to return
2012-08-01 19:16:06 -07:00
Brian Anderson
c4bb8f8aaf
test: Move two tests from run-pass into the libs
2012-07-31 17:30:54 -07:00
Graydon Hoare
a63e0e47f0
Update some str functions to slices, merge as_buf and unpack_slice.
2012-07-24 12:35:52 -07:00
Patrick Walton
db020ab63c
rustc: Implement and enforce instance coherence
2012-07-17 15:46:43 -07:00
Michael Sullivan
92743dc2a6
Move the world over to using the new style string literals and types. Closes #2907 .
2012-07-14 01:03:43 -07:00
Patrick Walton
fdf0c1b353
core: Newtype a bunch of types in libcore
2012-07-11 12:47:32 -07:00
Gareth Daniel Smith
be0141666d
convert doc-attributes to doc-comments using ./src/etc/sugarise-doc-comments.py (and manually tweaking) - for issue #2498
2012-07-04 19:18:13 -07:00
Graydon Hoare
debb7e4641
Switch 'native' to 'extern' (or 'foreign' in some descriptions)
2012-07-03 16:11:00 -07:00
Brian Anderson
d1fc2b5995
Convert to new closure syntax
2012-07-01 19:19:32 -07:00
Brian Anderson
a3382b6f26
Eliminate usages of old sugared call syntax
2012-06-30 16:01:49 -07:00
Michael Sullivan
98e161f00e
Switch the compiler over to using ~[] notation instead of []/~. Closes #2759 .
2012-06-29 17:41:45 -07:00
Michael Sullivan
329eca6044
Make vectors uglier ([]/~). Sorry. Should be temporary. Closes #2725 .
2012-06-25 20:00:46 -07:00
Brian Anderson
fad307d7b4
core: Convert declarations to not use the trailing 'unsafe' notation
2012-06-25 12:48:39 -07:00
Eric Holk
0e5cfd9f33
Move vector addition out of trans and into libcore.
2012-06-21 16:11:11 -07:00
Niko Matsakis
3cbd1e221e
mark addr_or and friends pure
2012-06-07 07:18:29 -07:00
Eric Holk
1e8f501343
Machine types are different from int/uint, etc (Issue #2187 )
2012-06-04 19:16:47 -07:00
Niko Matsakis
3f6e6532ac
make vec fns/methods take imm slices.
...
this also repairs the unsoundness in typing of unpack_slice,
which was silently converting a const ptr to an imm one.
2012-06-02 19:14:57 -07:00
Niko Matsakis
f4cc5ff226
remove extra type parameter from ptr::is_null() and friends
2012-05-02 21:47:14 -07:00
Brian Anderson
7a2d7aa5de
core: Add extension methods for is_null, is_not_null
2012-04-15 21:46:29 -07:00
Alexander Stavonin
5b308ec24a
export buf_len from ptr
2012-04-15 16:40:47 +09:00
Graydon Hoare
d85e48840d
Trivial change to force a doc rebuild.
2012-04-13 19:51:04 -07:00
Graydon Hoare
9fda1578a2
Add ptr::position and ptr::buf_len, close #2183 .
2012-04-11 15:46:51 -07:00
Brian Anderson
12d3d4f125
core: Export is_null, is_not_null
2012-04-03 22:32:55 -07:00
Brian Anderson
3b8097dacc
core: Add ptr::is_null/is_not_null
2012-04-03 21:56:16 -07:00
Graydon Hoare
6e6798c4e1
Bulk-edit mutable -> mut.
2012-03-26 18:35:18 -07:00
Marijn Haverbeke
1b81c5112a
Remove last vestiges of old-style intrinsics
...
Closes #2048
2012-03-23 16:08:01 +01:00
Marijn Haverbeke
0545e4a920
Support [rust_stack] annotation on native functions (crudely)
2012-03-23 10:49:47 +01:00
Marijn Haverbeke
894b7469d6
Replace most uses of intrinsics in core with builtins
...
Issue #1981
2012-03-23 10:49:47 +01:00
Marijn Haverbeke
bc3f5e7160
rustc: Replace intrinsic vec_len with unsafe Rust code
...
Preparation for #1981
2012-03-21 15:56:48 +01:00
Graydon Hoare
6f5853f5a1
Libc/os/run/rand/io reorganization. Close #1373 . Close #1638 .
...
- Move io, run and rand to core.
- Remove incorrect ctypes module (use libc).
- Remove os-specific modules for os and fs.
- Split fs between core::path and core::os.
2012-03-12 20:08:29 -07:00
Brian Anderson
a0f0a704b0
core: Clean up comments and exports
2012-03-10 00:35:02 -08:00
Brian Anderson
b22556a6f8
core: Convert to rustdoc
2012-03-09 22:56:53 -08:00
Brian Anderson
d1c6e34e1c
core: Inline a bunch of unsafe functions
2012-03-06 11:20:43 -08:00
Niko Matsakis
3269a4043c
rewrite vec to be more unsafe, more inlined
2012-03-05 16:47:52 -08:00
Magnus Auvinen
a422cd7ddb
fixed memmove. were using memcpy due to copy paste error
2012-02-09 21:47:12 +01:00
Brian Anderson
159aebc28b
core: Whitespace policia
2012-02-07 15:08:54 -08:00
Magnus Auvinen
a5fc0b08de
added some documentation and made the memcpy and memmove unsafe
2012-02-07 15:08:54 -08:00
Magnus Auvinen
3e9859362b
made leak an intrinsic to avoid a c-call. added memmove and memcpy intrinsics
2012-02-07 15:08:54 -08:00
Haitao Li
dde41869ce
Use ctypes in native function declarations
2012-01-19 02:10:36 +08:00
Brian Anderson
17bf4b0e1b
libcore: Move core tests into libcore
2012-01-17 19:41:05 -08:00
Graydon Hoare
fa9ad984fb
Copy first batch of material from libstd to libcore.
2011-12-13 16:34:50 -08:00