| 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. |