rust/RELEASES.txt

188 lines
6.8 KiB
Plaintext
Raw Normal View History

2012-10-04 02:41:55 +02:00
Version 0.4 (October 2012)
2012-10-04 02:49:09 +02:00
--------------------------
2012-09-15 04:49:05 +02:00
2012-09-15 08:29:24 +02:00
* ~1500 changes, numerous bugfixes
2012-09-15 04:49:05 +02:00
* 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
2012-10-04 02:41:08 +02:00
* Explicit method self types
2012-09-15 04:49:05 +02:00
* `ret` became `return` and `alt` became `match`
2012-09-15 08:11:51 +02:00
* `import` is now `use`; `use is now `extern mod`
* `extern mod { ... }` is now `extern { ... }`
* `use mod` is the recommended way to import modules
* `pub` and `priv` replace deprecated export lists
* The syntax of `match` pattern arms now uses fat arrow (=>)
2012-10-04 02:41:08 +02:00
* `main` no longer accepts an args vector; use `os::args` instead
2012-09-15 04:49:05 +02:00
* Semantics
* Trait implementations are now coherent, ala Haskell typeclasses
2012-09-15 08:11:51 +02:00
* Trait methods may be static
* Argument modes are deprecated
2012-09-15 04:49:05 +02:00
* 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
2012-09-15 08:11:51 +02:00
* Resolution rewritten to be more reliable
2012-09-15 04:49:05 +02:00
* Support for 'dual-mode' data structures (freezing and thawing)
* 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`
2012-10-04 02:41:08 +02:00
* `core::task' gained a (currently unsafe) task-local storage API
2012-09-15 04:49:05 +02:00
* Concurrency
2012-09-15 08:11:51 +02:00
* An efficient new intertask communication primitive called the pipe,
along with a number of higher-level channel types, in `core::pipes`
2012-09-15 04:49:05 +02:00
* `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
2012-10-04 02:41:08 +02:00
* All hash functions and tables converted to secure, randomized SipHash
2012-09-15 04:49:05 +02:00
2012-07-11 04:06:58 +02:00
Version 0.3 (July 2012)
------------------------
2012-06-23 03:08:43 +02:00
2012-07-11 04:06:58 +02:00
* ~1900 changes, numerous bugfixes
* New coding conveniences
* Integer-literal suffix inference
2012-07-05 01:11:37 +02:00
* Per-item control over warnings, errors
* #[cfg(windows)] and #[cfg(unix)] attributes
* Documentation comments
* More compact closure syntax
2012-07-05 21:38:07 +02:00
* 'do' expressions for treating higher-order functions as
control structures
2012-07-05 01:11:37 +02:00
* *-patterns (wildcard extended to all constructor fields)
* Semantic cleanup
2012-07-05 21:38:07 +02:00
* Name resolution pass and exhaustiveness checker rewritten
2012-07-06 01:36:11 +02:00
* Region pointers and borrow checking supersede alias
analysis
2012-07-05 21:38:07 +02: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 21:38:07 +02: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-11 04:06:58 +02: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-27 03:17:55 +02:00
Version 0.2 (March 2012)
-------------------------
2012-03-27 21:54:43 +02:00
* >1500 changes, numerous bugfixes
2012-03-27 03:17:55 +02: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 22:05:59 +02:00
* Noticeably improved message-passing performance
2012-03-27 03:17:55 +02:00
* Explicit schedulers
* Callbacks from C
* Helgrind clean
2012-03-27 21:54:43 +02:00
* Experimental new language features
2012-03-27 03:17:55 +02: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 21:54:43 +02:00
* Block-function form of 'for' loop, with 'break' and 'ret'.
2012-03-27 03:17:55 +02: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 23:46:52 +01:00
Version 0.1 (January 2012)
---------------------------
2012-01-20 06:17:23 +01: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 23:46:52 +01: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-20 06:17:23 +01:00
* Documentation is incomplete.
2012-01-18 23:46:52 +01:00
2012-01-20 07:53:55 +01:00
* Performance is below intended target.
2012-01-18 23:46:52 +01:00
2012-01-20 06:17:23 +01:00
* Standard library APIs are subject to extensive change, reorganization.
2012-01-18 23:46:52 +01:00
2012-01-20 06:17:23 +01:00
* Language-level versioning is not yet operational - future code will
break unexpectedly.