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
|
2012-06-29 20:30:21 -05:00
|
|
|
|
|
|
|
* New coding conveniences
|
|
|
|
* Integer-literal suffix inference
|
2012-07-04 18:11:37 -05:00
|
|
|
* Per-item control over warnings, errors
|
2012-06-29 20:30:21 -05:00
|
|
|
* #[cfg(windows)] and #[cfg(unix)] attributes
|
2012-07-02 21:57:25 -05:00
|
|
|
* 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)
|
2012-06-29 20:30:21 -05:00
|
|
|
|
|
|
|
* 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
|
2012-06-29 20:30:21 -05:00
|
|
|
* 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
|
2012-06-29 20:30:21 -05:00
|
|
|
|
|
|
|
* 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')
|
2012-06-29 20:30:21 -05:00
|
|
|
|
|
|
|
* 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-06-24 15:42:03 -05:00
|
|
|
|
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.
|