forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASES.txt
132 lines (103 loc) · 4.45 KB
/
RELEASES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
Version 0.3 (July 2012)
------------------------
* ~1900 changes, numerous bugfixes
* New coding conveniences
* Integer-literal suffix inference
* Per-item control over warnings, errors
* #[cfg(windows)] and #[cfg(unix)] attributes
* Documentation comments
* More compact closure syntax
* 'do' expressions for treating higher-order functions as
control structures
* *-patterns (wildcard extended to all constructor fields)
* Semantic cleanup
* Name resolution pass and exhaustiveness checker rewritten
* Region pointers and borrow checking supersede alias
analysis
* Init-ness checking is now provided by a region-based liveness
pass instead of the typestate pass; same for last-use analysis
* Extensive work on region pointers
* Experimental new language features
* Slices and fixed-size, interior-allocated vectors
* #!-comments for lang versioning, shell execution
* Destructors and iface implementation for classes;
type-parameterized classes and class methods
* 'const' type kind for types that can be used to implement
shared-memory concurrency patterns
* Type reflection
* Removal of various obsolete features
* Keywords: 'be', 'prove', 'syntax', 'note', 'mutable', 'bind',
'crust', 'native' (now 'extern'), 'cont' (now 'again')
* Constructs: do-while loops ('do' repurposed), fn binding,
resources (replaced by destructors)
* Compiler reorganization
* Syntax-layer of compiler split into separate crate
* Clang (from LLVM project) integrated into build
* Typechecker split into sub-modules
* New library code
* New time functions
* Extension methods for many built-in types
* Arc: atomic-refcount read-only / exclusive-use shared cells
* Par: parallel map and search routines
* Extensive work on libuv interface
* Much vector code moved to libraries
* Syntax extensions: #line, #col, #file, #mod, #stringify,
#include, #include_str, #include_bin
* Tool improvements
* Cargo automatically resolves dependencies
Version 0.2 (March 2012)
-------------------------
* >1500 changes, numerous bugfixes
* New docs and doc tooling
* New port: FreeBSD x86_64
* Compilation model enhancements
* Generics now specialized, multiply instantiated
* Functions now inlined across separate crates
* Scheduling, stack and threading fixes
* Noticeably improved message-passing performance
* Explicit schedulers
* Callbacks from C
* Helgrind clean
* Experimental new language features
* Operator overloading
* Region pointers
* Classes
* Various language extensions
* C-callback function types: 'crust fn ...'
* Infinite-loop construct: 'loop { ... }'
* Shorten 'mutable' to 'mut'
* Required mutable-local qualifier: 'let mut ...'
* Basic glob-exporting: 'export foo::*;'
* Alt now exhaustive, 'alt check' for runtime-checked
* Block-function form of 'for' loop, with 'break' and 'ret'.
* New library code
* AST quasi-quote syntax extension
* Revived libuv interface
* New modules: core::{future, iter}, std::arena
* Merged per-platform std::{os*, fs*} to core::{libc, os}
* Extensive cleanup, regularization in libstd, libcore
Version 0.1 (January 2012)
---------------------------
* Most language features work, including:
* Unique pointers, unique closures, move semantics
* Interface-constrained generics
* Static interface dispatch
* Stack growth
* Multithread task scheduling
* Typestate predicates
* Failure unwinding, destructors
* Pattern matching and destructuring assignment
* Lightweight block-lambda syntax
* Preliminary macro-by-example
* Compiler works with the following configurations:
* Linux: x86 and x86_64 hosts and targets
* MacOS: x86 and x86_64 hosts and targets
* Windows: x86 hosts and targets
* Cross compilation / multi-target configuration supported.
* Preliminary API-documentation and package-management tools included.
Known issues:
* Documentation is incomplete.
* Performance is below intended target.
* Standard library APIs are subject to extensive change, reorganization.
* Language-level versioning is not yet operational - future code will
break unexpectedly.