130 lines
4.2 KiB
Plaintext
130 lines
4.2 KiB
Plaintext
Version 0.3 (June 2012) - not yet!
|
|
-----------------------------------
|
|
|
|
* ~1500 changes, numerous bugfixes
|
|
|
|
* New coding conveniences
|
|
* Integer-literal suffix inference
|
|
* Per-module 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
|
|
* Resolve pass and exhaustiveness checker rewritten
|
|
* Borrow-check taking over from alias-analysis
|
|
* Liveness taking over from last-use, typestate
|
|
* 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
|
|
|
|
* Type reflection
|
|
|
|
* Removal of various obsolete features
|
|
* Keywords: 'be', 'prove', 'syntax', 'note', 'mutable', 'bind',
|
|
'crust', 'native' (now 'extern')
|
|
|
|
* 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.
|