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