1 Version 0.3 (July 2012)
2 ------------------------
4 * ~1900 changes, numerous bugfixes
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
14 * *-patterns (wildcard extended to all constructor fields)
17 * Name resolution pass and exhaustiveness checker rewritten
18 * Region pointers and borrow checking supersede alias
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
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
34 * Removal of various obsolete features
35 * Keywords: 'be', 'prove', 'syntax', 'note', 'mutable', 'bind',
36 'crust', 'native' (now 'extern'), 'cont' (now 'again')
38 * Constructs: do-while loops ('do' repurposed), fn binding,
39 resources (replaced by destructors)
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
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
57 * Cargo automatically resolves dependencies
59 Version 0.2 (March 2012)
60 -------------------------
62 * >1500 changes, numerous bugfixes
64 * New docs and doc tooling
66 * New port: FreeBSD x86_64
68 * Compilation model enhancements
69 * Generics now specialized, multiply instantiated
70 * Functions now inlined across separate crates
72 * Scheduling, stack and threading fixes
73 * Noticeably improved message-passing performance
78 * Experimental new language features
79 * Operator overloading
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'.
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
99 Version 0.1 (January 2012)
100 ---------------------------
102 * Most language features work, including:
103 * Unique pointers, unique closures, move semantics
104 * Interface-constrained generics
105 * Static interface dispatch
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
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
119 * Cross compilation / multi-target configuration supported.
121 * Preliminary API-documentation and package-management tools included.
125 * Documentation is incomplete.
127 * Performance is below intended target.
129 * Standard library APIs are subject to extensive change, reorganization.
131 * Language-level versioning is not yet operational - future code will