rust/RELEASES.txt

181 lines
6.4 KiB
Plaintext
Raw Normal View History

2012-09-14 21:49:05 -05:00
Version 0.4 (September 2012)
* ~1500 changes
* Syntax
* All keywords are now strict and may not be used as identifiers anywhere
* Keyword removal: 'again', 'import', 'check', 'new', 'owned', 'send',
'of', 'with', 'to', 'class'.
* Classes are replaced with simpler structs
* Method self types
* `ret` became `return` and `alt` became `match`
* Semantics
* Trait implementations are now coherent, ala Haskell typeclasses
* Borrowed pointers are much more mature and recommended for use
* Strings and vectors in the static region are stored in constant memory
* Typestate was removed
* Resolution is rewritten to be more reliable
* Support for 'dual-mode' data structures (freezing and thawing)
* Last-use analysis is only used for warnings now. Moves must be explicit
for lvalues (TODO: confirm)
* Libraries
* Most binary operators can now be overloaded via the traits in
`core::ops'
* `std::net::url` for representing URLs
* Sendable hash maps in `core::send_map`
* `core::task' gained a (currently very unsafe) task-local storage API
* Concurrency
* An effecient new intertask communication primitive called `core::pipes`
* `std::arc`, an atomically reference counted, immutable, shared memory
type
* `std::sync`, various exotic synchronization tools based on arcs and pipes
* Futures are now based on pipes and sendable
* More robust linked task failure
* Improved task builder API
* Other
* Improved error reporting
* Preliminary JIT support
* Preliminary work on precise GC
* Extensive architectural improvements to rustc
* Begun a transition away from buggy C++-based reflection (shape) code to
Rust-based (visitor) code
* Hash functions improved across the codebase (TODO: need details)
* New lint checks (TODO: which?)
2012-07-10 21:06:58 -05:00
Version 0.3 (July 2012)
------------------------
2012-06-22 20:08:43 -05:00
2012-07-10 21:06:58 -05:00
* ~1900 changes, numerous bugfixes
* New coding conveniences
* Integer-literal suffix inference
2012-07-04 18:11:37 -05:00
* Per-item control over warnings, errors
* #[cfg(windows)] and #[cfg(unix)] attributes
* Documentation comments
* More compact closure syntax
2012-07-05 14:38:07 -05:00
* 'do' expressions for treating higher-order functions as
control structures
2012-07-04 18:11:37 -05:00
* *-patterns (wildcard extended to all constructor fields)
* Semantic cleanup
2012-07-05 14:38:07 -05:00
* Name resolution pass and exhaustiveness checker rewritten
2012-07-05 18:36:11 -05:00
* Region pointers and borrow checking supersede alias
analysis
2012-07-05 14:38:07 -05:00
* 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
2012-07-05 14:38:07 -05:00
* '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',
2012-07-10 21:06:58 -05:00
'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
2012-03-26 20:17:55 -05:00
Version 0.2 (March 2012)
-------------------------
2012-03-27 14:54:43 -05:00
* >1500 changes, numerous bugfixes
2012-03-26 20:17:55 -05:00
* 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
2012-03-28 15:05:59 -05:00
* Noticeably improved message-passing performance
2012-03-26 20:17:55 -05:00
* Explicit schedulers
* Callbacks from C
* Helgrind clean
2012-03-27 14:54:43 -05:00
* Experimental new language features
2012-03-26 20:17:55 -05:00
* 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
2012-03-27 14:54:43 -05:00
* Block-function form of 'for' loop, with 'break' and 'ret'.
2012-03-26 20:17:55 -05:00
* 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
2012-01-18 16:46:52 -06:00
Version 0.1 (January 2012)
---------------------------
2012-01-19 23:17:23 -06:00
* 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:
2012-01-18 16:46:52 -06:00
* 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:
2012-01-19 23:17:23 -06:00
* Documentation is incomplete.
2012-01-18 16:46:52 -06:00
2012-01-20 00:53:55 -06:00
* Performance is below intended target.
2012-01-18 16:46:52 -06:00
2012-01-19 23:17:23 -06:00
* Standard library APIs are subject to extensive change, reorganization.
2012-01-18 16:46:52 -06:00
2012-01-19 23:17:23 -06:00
* Language-level versioning is not yet operational - future code will
break unexpectedly.