Skip to content

Commit d0eb72f

Browse files
committed
---
yaml --- r: 49855 b: refs/heads/auto c: 5d3d089 h: refs/heads/master i: 49853: d75519b 49851: aeac6f1 49847: cb5cc4b 49839: c2a4b92 49823: b32104c 49791: 85b54ed v: v3
1 parent 72855b1 commit d0eb72f

File tree

14 files changed

+230
-391
lines changed

14 files changed

+230
-391
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: a6bb4a0f1a61ab00e09c4cb24dfff95c6c2481c7
17+
refs/heads/auto: 5d3d0890a7f380a453a6303bb96ba7bef28f6237
1818
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167

branches/auto/RELEASES.txt

Lines changed: 79 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,85 @@
1-
Version 0.6 (?)
1+
Version 0.6 (March 2013)
22
---------------------------
33

4+
* ~??? changes, numerous bugfixes
5+
6+
* TODO:
7+
* Ord/Cmp
8+
* Lifetime changes
9+
* Implicit self
10+
* Remove `static` keyword
11+
* Static method syntax
12+
* `as Trait`
13+
* `copy` removed?
14+
15+
* Syntax changes
16+
* The self type parameter in traits is now spelled `Self`
17+
* Replaced the `Durable` trait with the `'static` lifetime
18+
* The old closure type syntax with the trailing sigil has been
19+
removed in favor of the more consistent leading sigil
20+
* `super` is a keyword, and may be prefixed to paths
21+
* Trait bounds are separated with `+` instead of whitespace
22+
* Traits are implemented with `impl Trait for Type`
23+
instead of `impl Type: Trait`
24+
* The `export` keyword has finally been removed
25+
* The `move` keyword has been removed (linear types move by default)
26+
* The interior mutability qualifier on vectors, `[mut T]`, has been
27+
removed. Use `&mut [T]`, etc.
28+
* `mut` is no longer valid in `~mut T`. Use inherited mutability
29+
* `fail` is no longer a keyword. Use `fail!()`
30+
* `assert` is no longer a keyword. Use `assert!()`
31+
* `log` is no longer a keyword. use `debug!`, etc.
32+
* 1-tuples may be represented as `(T,)`
33+
* Struct fields may no longer be `mut`. Use inherited mutability,
34+
`@mut T`, `core::mut` or `core::cell`
35+
* `extern mod { ... }` is no longer valid syntax for foreign
36+
function modules. Use extern blocks: `extern { ... }`
37+
* Newtype enums removed. Used tuple-structs.
38+
* Trait implementations no longer support visibility modifiers
39+
40+
* Semantic changes
41+
* Linear types move by default, eliminating the `move` keyword
42+
* All foreign functions are considered unsafe
43+
* &mut is now unaliasable
44+
* Writes to borrowed @mut pointers are prevented dynamically
45+
* () has size 0
46+
* The name of the main function can be customized using #[main]
47+
* The default type of an inferred closure is &fn instead of @fn
48+
* Name resolution continues to be tweaked
49+
* Method visibility is inherited from the implementation declaration
50+
51+
* Other language changes
52+
* Structural records have been removed
53+
* Many more types can be used in constants, including enums
54+
`static lifetime pointers and vectors
55+
* Pattern matching over vectors improved and expanded
56+
* Typechecking of closure types has been overhauled to
57+
improve inference and eliminate unsoundness
58+
459
* Libraries
5-
* `core::send_map` renamed to `core::hashmap`
60+
* Lots of effort to organize the container API's around `core::container`
61+
* `core::send_map` renamed to `core::hashmap`
62+
* Added big integers to `std::bigint`
63+
* Removed `core::oldcomm` module
64+
* Added pipe-based `core::comm` module
65+
* Reimplemented `std::treemap`
66+
* Numeric traits have been reorganized under `core::num`
67+
* `core::dvec` removed. Use `@mut ~[T]` or other language types
68+
* `vec::slice` finally returns a slice
69+
* `debug!` and friends don't require a format string, e.g. `debug!(Foo)`
70+
71+
* Tools
72+
* Replaced the 'cargo' package manager with 'rustpkg'
73+
* Added all-purpose 'rust' tool
74+
* `rustc --test` now supports a benchmarks with the `#[bench]` attribute
75+
* rustc now attempts to offer spelling suggestions
76+
77+
* Misc
78+
* Improved support for ARM and Android
79+
* Preliminary MIPS backend
80+
* Improved foreign function ABI implementation for x86, x86_64
81+
* Various and memory usage improvements
82+
* Rust code may be embedded in foreign code under limited circumstances
683

784
Version 0.5 (December 2012)
885
---------------------------

branches/auto/src/libcore/core.rc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ Implicitly, all crates behave as if they included the following prologue:
5858
#[cfg(target_os = "linux")]
5959
pub mod linkhack {
6060
#[link_args="-lrustrt -lrt"]
61-
#[link_args = "-lpthread"]
6261
extern {
6362
}
6463
}

branches/auto/src/libcore/libc.rs

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -534,8 +534,6 @@ pub mod types {
534534

535535
pub type LPCWSTR = *WCHAR;
536536
pub type LPCSTR = *CHAR;
537-
pub type LPCTSTR = *CHAR;
538-
pub type LPTCH = *CHAR;
539537

540538
pub type LPWSTR = *mut WCHAR;
541539
pub type LPSTR = *mut CHAR;
@@ -794,7 +792,6 @@ pub mod consts {
794792

795793
pub const ERROR_SUCCESS : int = 0;
796794
pub const ERROR_INSUFFICIENT_BUFFER : int = 122;
797-
pub const INVALID_HANDLE_VALUE: int = -1;
798795
}
799796
}
800797

@@ -1118,7 +1115,6 @@ pub mod funcs {
11181115
pub mod string {
11191116
use libc::types::common::c95::c_void;
11201117
use libc::types::os::arch::c95::{c_char, c_int, size_t};
1121-
use libc::types::os::arch::c95::{wchar_t};
11221118

11231119
pub extern {
11241120
unsafe fn strcpy(dst: *c_char, src: *c_char) -> *c_char;
@@ -1142,7 +1138,6 @@ pub mod funcs {
11421138
unsafe fn strtok(s: *c_char, t: *c_char) -> *c_char;
11431139
unsafe fn strxfrm(s: *c_char, ct: *c_char, n: size_t)
11441140
-> size_t;
1145-
unsafe fn wcslen(buf: *wchar_t) -> size_t;
11461141

11471142
// These are fine to execute on the Rust stack. They must be,
11481143
// in fact, because LLVM generates calls to them!
@@ -1386,28 +1381,9 @@ pub mod funcs {
13861381
use libc::types::os::arch::c95::{c_char, c_int, c_long};
13871382

13881383
pub extern {
1389-
// default bindings for opendir and readdir in
1390-
// non-macos unix
1391-
#[cfg(target_os = "linux")]
1392-
#[cfg(target_os = "android")]
1393-
#[cfg(target_os = "freebsd")]
13941384
unsafe fn opendir(dirname: *c_char) -> *DIR;
1395-
#[cfg(target_os = "linux")]
1396-
#[cfg(target_os = "android")]
1397-
#[cfg(target_os = "freebsd")]
1398-
unsafe fn readdir(dirp: *DIR) -> *dirent_t;
1399-
// on OSX (particularly when running with a
1400-
// 64bit kernel), we have an issue where there
1401-
// are separate bindings for opendir and readdir,
1402-
// which we have to explicitly link, as below.
1403-
#[cfg(target_os = "macos")]
1404-
#[link_name = "opendir$INODE64"]
1405-
unsafe fn opendir(dirname: *c_char) -> *DIR;
1406-
#[cfg(target_os = "macos")]
1407-
#[link_name = "readdir$INODE64"]
1408-
unsafe fn readdir(dirp: *DIR) -> *dirent_t;
1409-
14101385
unsafe fn closedir(dirp: *DIR) -> c_int;
1386+
unsafe fn readdir(dirp: *DIR) -> *dirent_t;
14111387
unsafe fn rewinddir(dirp: *DIR);
14121388
unsafe fn seekdir(dirp: *DIR, loc: c_long);
14131389
unsafe fn telldir(dirp: *DIR) -> c_long;
@@ -1618,9 +1594,8 @@ pub mod funcs {
16181594

16191595
pub mod kernel32 {
16201596
use libc::types::os::arch::extra::{BOOL, DWORD, HMODULE};
1621-
use libc::types::os::arch::extra::{LPCWSTR, LPWSTR, LPTCH};
1597+
use libc::types::os::arch::extra::{LPCWSTR, LPWSTR};
16221598
use libc::types::os::arch::extra::{LPSECURITY_ATTRIBUTES};
1623-
use libc::types::os::arch::extra::{HANDLE};
16241599

16251600
#[abi = "stdcall"]
16261601
pub extern {
@@ -1630,8 +1605,6 @@ pub mod funcs {
16301605
-> DWORD;
16311606
unsafe fn SetEnvironmentVariableW(n: LPCWSTR, v: LPCWSTR)
16321607
-> BOOL;
1633-
unsafe fn GetEnvironmentStringsA() -> LPTCH;
1634-
unsafe fn FreeEnvironmentStringsA(env_ptr: LPTCH) -> BOOL;
16351608

16361609
unsafe fn GetModuleFileNameW(hModule: HMODULE,
16371610
lpFilename: LPWSTR,
@@ -1650,13 +1623,6 @@ pub mod funcs {
16501623
unsafe fn SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL;
16511624

16521625
unsafe fn GetLastError() -> DWORD;
1653-
unsafe fn FindFirstFileW(fileName: *u16,
1654-
findFileData: HANDLE)
1655-
-> HANDLE;
1656-
unsafe fn FindNextFileW(findFile: HANDLE,
1657-
findFileData: HANDLE)
1658-
-> BOOL;
1659-
unsafe fn FindClose(findFile: HANDLE) -> BOOL;
16601626
}
16611627
}
16621628

branches/auto/src/libcore/nil.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Functions for the unit type.
1515
*/
1616

1717
#[cfg(notest)]
18-
use cmp::{Eq, Ord, TotalOrd, Ordering, Equal};
18+
use cmp::{Eq, Ord};
1919

2020
#[cfg(notest)]
2121
impl Eq for () {
@@ -37,8 +37,3 @@ impl Ord for () {
3737
pure fn gt(&self, _other: &()) -> bool { false }
3838
}
3939

40-
#[cfg(notest)]
41-
impl TotalOrd for () {
42-
#[inline(always)]
43-
pure fn cmp(&self, _other: &()) -> Ordering { Equal }
44-
}

0 commit comments

Comments
 (0)