diff --git a/AUTHORS.txt b/AUTHORS.txt index 9aa09ac17635..bc8dbc878baa 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,17 +1,25 @@ Rust was written by these fine people: +A.J. Gardner +Aaron Friel Aaron Laursen +Aaron Liblong Aaron Raimist Aaron Todd Aaron Turon +Aaron Weiss Adam Bozanich +Adam Szkoda Adolfo Ochagavía Adrien Brault Adrien Tétar Ahmed Charles +Aidan Cully +Akos Kiss Alan Andrade Alan Williams Aleksander Balicki +Aleksandr Koshlo Alex Crichton Alex Gaynor Alex Lyon @@ -30,55 +38,62 @@ Aljaž "g5pw" Srebrnič Amy Unger Anders Kaseorg Andre Arko +Andrea Canciani Andreas Gal Andreas Martens Andreas Neuhaus Andreas Ots Andreas Tolfsen Andrei Formiga +Andrew Cann Andrew Chin Andrew Dunham Andrew Gallant Andrew Paseltiner Andrew Poelstra +Andrew Wagner Angus Lees Anthony Juckel -Anton Lofgren Anton Löfgren Arcterus -Ariel Ben-Yehuda +Ariel Ben-Yehuda Arjan Topolovec Arkaitz Jimenez Armin Ronacher Arpad Borsos +Artem +Arthur Liao Ashok Gautham Austin Bonander Austin King Austin Seipp Axel Viala Aydin Kim +Barosl Lee Ben Alpert Ben Blum +Ben Foppa Ben Gamari Ben Harris Ben Kelly Ben Noordhuis +Ben S Ben Striegel Benjamin Adamson Benjamin Herr Benjamin Jackman Benjamin Kircher Benjamin Peterson -Bheesham Persaud +Bheesham Persaud Bilal Husain Bill Fallon Bill Myers Bill Wendling Birunthan Mohanathas Björn Steinbrink -Boris Egorov +Boris Egorov Bouke van der Bijl -Brandon Sanderson +Brandon Sanderson Brandon Waskiewicz Branimir Brendan Cully @@ -88,6 +103,7 @@ Brendan Zabarauskas Brett Cannon Brian Anderson Brian Dawn +Brian J Brennan Brian J. Burg Brian Koropoff Brian Leibig @@ -99,9 +115,10 @@ Caitlin Potter Cameron Zwarich Carl-Anton Ingmarsson Carlos -Carol Nichols +Carol Nichols Carol Willing Carter Tazio Schonwald +Chase Southwood Chris Double Chris Morgan Chris Nixon @@ -116,6 +133,7 @@ Christopher Kendell Chuck Ries Clark Gaebel Clinton Ryan +Cody P Schafer Cody Schroeder Cole Mickens Colin Davidson @@ -124,6 +142,7 @@ Conrad Kleinespel Corey Farwell Corey Ford Corey Richardson +Cristi Burcă DJUrsus Damian Gryski Damien Grassart @@ -159,9 +178,11 @@ Derecho Derek Chiang Derek Guenther Derek Harland +Diego Giagio Diego Ongaro Diggory Hardy Dimitri Krassovski +Dirk Gadsden Dirk Leifeld Dirkjan Bussink Div Shekhar @@ -174,6 +195,7 @@ Douglas Young Drew Willcoxon Dylan Braithwaite Dzmitry Malyshau +Earl St Sauver Eduard Bopp Eduard Burtescu Eduardo Bautista @@ -183,15 +205,18 @@ Ehsanul Hoque Elliott Slaughter Elly Fong-Jones Emanuel Rylke +Eric Allen Eric Biggers Eric Holk Eric Holmes +Eric Kidd Eric Martin Eric Reed Erick Tryzelaar Erik Lyon Erik Price Erik Rose +Erwan Etienne Millon Eunchong Yu Evan Klitzke @@ -199,6 +224,7 @@ Evan McClanahan Evgeny Sologubov Fabian Deutsch Fabrice Desré +FakeKane Falco Hirschenberger Fedor Indutny Felix Crux @@ -209,6 +235,7 @@ Flavio Percoco Florian Gilcher Florian Hahn Florian Hartwig +Florian Wilkens Florian Zeitz Francisco Souza Franklin Chen @@ -221,10 +248,12 @@ Geoff Hill Geoffroy Couprie George Papanikolaou Georges Dubus +Gil Cottle Gioele Barabucci +Gleb Kozyrev Glenn Willen Gonçalo Cabrita <_@gmcabrita.com> -Graham Fawcett +Graham Fawcett Grahame Bowland Graydon Hoare Grigoriy @@ -242,6 +271,7 @@ Hong Chulju Honza Strnad Hugo Jobling Huon Wilson +Ian Connolly Ian D. Bollinger Ian Daniher Igor Bukanov @@ -251,31 +281,39 @@ Isaac Aggrey Isaac Dupree Ivan Enderlin Ivan Petkov +Ivan Ukhov Ivano Coppola J. J. Weber J.C. Moyer +JONNALAGADDA Srinivas Jack Heizer Jack Moffitt +Jacob Edelman Jacob Harris Cryer Kragh Jacob Hegna Jacob Parker Jaemin Moon Jag Talon +Jake Goulding Jake Kaufman Jake Kerr Jake Scott +Jakub Bukaj Jakub Wieczorek James Deng James Hurst James Lal James Laverack -James Miller +James Miller James Rowe James Sanders James Tranovich Jan Kobler Jan Niklas Hasse Jannis Harder +Jared Roesch +Jarod Liu +Jashank Jeremy Jason Fager Jason Orendorff Jason Thompson @@ -287,7 +325,9 @@ Jed Estep Jeff Balogh Jeff Muizelaar Jeff Olson +Jeff Parsons Jeffrey Yasskin +Jelte Fennema Jens Nockert Jeong YunWon Jeremy Letang @@ -296,6 +336,7 @@ Jesse Luehrs Jesse Ray Jesse Ruderman Jihyun Yu +Jim Apple Jim Blandy Jim Radford Jimmie Elvenmark @@ -303,16 +344,20 @@ Jimmy Lu Jimmy Zelinskie Joe Pletcher Joe Schafer +Johannes Hoff Johannes Löthberg Johannes Muenzel +John Albietz John Barker John Clements John Fresco John Gallagher +John Kleint John Kåre Alsaker John Louis Walker John Schmidt John Simon +Jon Haddad Jon Morton Jonas Hietala Jonathan Bailey @@ -320,12 +365,16 @@ Jonathan Boyett Jonathan Reem Jonathan S Jonathan Sternberg +Joonas Javanainen Jordi Boggiano -Jorge Aparicio +Jorge Aparicio Joris Rehm Joseph Crail Joseph Martin +Joseph Rushton Wakeling +Josh Haberman Josh Matthews +Josh Stone Joshua Clark Joshua Wise Joshua Yanovski @@ -336,9 +385,11 @@ JustAPerson Justin Noah Jyun-Yan You Kang Seonghoon +Kang Seonghoon Kasey Carrothers Keegan McAllister Kelly Wilson +Ken Tossell Keshav Kini Kevin Atkinson Kevin Ballard @@ -347,9 +398,11 @@ Kevin Cantu Kevin Mehall Kevin Murphy Kevin Walter +Kevin Yap Kiet Tran Kyeongwoon Lee Lars Bergstrom +Laurence Tratt Laurent Bonnans Lawrence Velázquez Leah Hanson @@ -359,8 +412,10 @@ Lennart Kudling Léo Testard Liigo Zhuang Lindsey Kuper +Lionel Flandrin Luca Bruno Luis de Bethencourt +Luke Metz Luqman Aden Magnus Auvinen Mahmut Bulut @@ -373,17 +428,23 @@ Mark Lacey <641@rudkx.com> Mark Rowe Mark Sinclair Mark Vian +Markus Siemens Markus Unterwaditzer Marti Raudsepp Martin DeMello Martin Olsson +Martin Pool Marvin Löbel Matej Lach Mateusz Czapliński +Mathieu Poumeyrol Mathijs van de Nes Matt Brubeck Matt Carberry Matt Coffin +Matt McPherrin +Matt Murphy +Matt Windsor Matthew Auld Matthew Iselin Matthew McPherrin @@ -393,6 +454,9 @@ Matthijs Hofstra Matthijs van der Vleuten Max Penet Maxim Kolganov +Maxime Quandalle +Maximilian Haack +Maya Nitu Meyer S. Jacobs Micah Chalmer Michael Arntzenius @@ -400,6 +464,7 @@ Michael Bebenita Michael Dagitses Michael Darakananda Michael Fairley +Michael Gehring Michael Kainer Michael Letterle Michael Matuzak @@ -415,19 +480,28 @@ Mick Koch Mickaël Delahaye Mihnea Dobrescu-Balaur Mike Boutin +Mike Dilger +Mike Pedersen Mike Robinson Mikko Perttunen Ms2ger Mukilan Thiagarajan +Mukilan Thiyagarajan +Murarth NODA, Kai +Nafis Nathan Froyd Nathan Typanski +Nathan Zadoks Nathaniel Herman +Neil Pankey NiccosSystem +Nicholas Bishop Nick Cameron Nick Desaulniers Nick Howell Nicolas Silva +Niels Egberts Niels langager Ellegaard Nif Ward Nikita Pekin @@ -437,6 +511,7 @@ Noam Yorav-Raphael Noufal Ibrahim O S K Chaitanya OGINO Masanori +Oliver Schneider Olivier Saut Olle Jonsson Or Brostovski @@ -446,28 +521,33 @@ P1start Pablo Brasero Palmer Cox Paolo Falabella +Pascal Hertleif Patrick Reisert Patrick Walton Patrick Yevsukov Patrik Kårlin -Paul Collins +Paul Collier Paul Stansifer Paul Woolcock Pavel Panchekha Pawel Olzacki +Pedro Larroy Peer Aramillo Irizar Peter Atashian +Peter Elmers Peter Hull Peter Marheine Peter Williams Peter Zotov Petter Remen -Phil Dawes +Phil Dawes Phil Ruffwind +Philip Munksgaard Philipp Brüschweiler Philipp Gesang Piotr Czarnecki Piotr Jawniak +Piotr Szotkowski Piotr Zolnierek Pradeep Kumar Prudhvi Krishna Surapaneni @@ -480,6 +560,7 @@ Ramkumar Ramachandra Randati Raphael Catolino Raphael Speyer +Ray Clanan Reilly Watson Renato Riccieri Santos Zannon Renato Zannon @@ -489,6 +570,7 @@ Rich Lane Richard Diamond Richo Healey Rick Waldron +Ricky Taylor Rob Arnold Rob Hoelz Robert Buonpastore @@ -497,9 +579,14 @@ Robert Gawdzik Robert Irelan Robert Knight Robert Millar +Robin Gloster +Robin Stocker +Rohit Joshi Roland Tanglao -Rolf Timmermans +Rolf Timmermans +Rolf van de Krol Ron Dahlgren +Roy Crihfield Roy Frostig Russell Ruud van Asseldonk @@ -520,10 +607,13 @@ Saurabh Anand Scott Jenkins Scott Lawrence Sean Chalmers +Sean Collins Sean Gillespie +Sean Jensen-Grey Sean McArthur Sean Moon Sean Stangl +Sean T Allen Sebastian N. Fernandez Sebastian Zaha Sebastien Martini @@ -531,12 +621,17 @@ Seo Sanghyeon Seonghyun Kim Sergio Benitez Seth Pink +Seth Pollack Shamir Khodzha SiegeLord Simon Barber-Dueck Simon Persson -Simon Sapin +Simon Sapin +Simon Wollwage +Simonas Kazlauskas +Son Squeaky +Stefan Bucur Stefan Plantikow Stepan Koltsov Sterling Greene @@ -546,12 +641,15 @@ Steven Fackler Steven Sheldon Steven Stewart-Gallus Strahinja Val Markovic -Stuart Pernsteiner +Stuart Pernsteiner +Subhash Bhushan Sylvestre Ledru Sébastien Chauvel Sébastien Crozet Sébastien Paolacci +Tamir Duberstein Taras Shpot +Taylor Hutchison Ted Horst Thad Guidry Thomas Backman @@ -562,7 +660,9 @@ Tim Chevalier Tim Joseph Dumol Tim Kuehn Tim Taubert +Timon Rapp Timothée Ravier +Titouan Vervack Tobba Tobias Bucher Tohava @@ -581,27 +681,35 @@ TyOverby Tycho Sci Tyler Bindon U-NOV2010\eugals +Ulysse Carion Utkarsh Kukreti Uwe Dauernheim Vadim Chugunov +Vadim Petrochenkov Valentin Tsatskin Valerii Hiora Victor Berger +Victor van den Elzen Vijay Korapaty Viktor Dahl Vincent Belliard Vinzent Steinberg Virgile Andreani +Vitali Haravy Vivek Galatage +Vladimir Matveev Vladimir Pouzanov +Vladimir Smola Volker Mische Wade Mealing WebeWizard Wendell Smith William Ting Yasuhiro Fujii +YawarRaza7349 Yazhong Liu Yehuda Katz +York Xiang Young-il Choi Youngmin Yoo Youngsoo Son @@ -611,22 +719,29 @@ Zach Kamsler Zach Pomerantz Zack Corr Zack Slayton -Zbigniew Siciarz +Zbigniew Siciarz Ziad Hatahet Zooko Wilcox-O'Hearn aochagavia +areski +arturo auREAX b1nd bachm blake2-ppc +bluss +bombless bors chitra chromatic comex +crhino +dan@daramos.com darkf dgoon donkopotamus eliovir +elszben flo-l fort free-Runner @@ -638,10 +753,17 @@ hansjorg iancormac84 inrustwetrust jamesluke +jbranchaud +jfager jmgrosen +jmu303 joaoxsouls +jrincayc +juxiliary +jxv klutzy korenchkin +kulakowski kvark kwantam lpy @@ -650,6 +772,7 @@ lyuts m-r-r maikklein masklinn +mchaput mdinger mitchmindtree moonglum @@ -659,15 +782,25 @@ musitdev nham noam novalis +oli-obk +olivren osa1 +qwitwa reedlepee +rjz sevrak +sheroze1123 smenardpw sp3d startling +th0114nd theptrk +thiagopnts tinaun +tshakah ville-h +we +whataloadofwhat wickerwaka xales zofrex diff --git a/RELEASES.md b/RELEASES.md index 8d1c6e0e987c..f7c385cbe7c1 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,185 @@ +Version 1.0.0-alpha (January 2015) +---------------------------------- + + * ~2400 changes, numerous bugfixes + + * Highlights + + * The language itself is considered feature complete for 1.0, + though there will be many usability improvements and bugfixes + before the final release. + * Nearly 50% of the public API surface of the standard library has + been declared 'stable'. Those interfaces are unlikely to change + before 1.0. + * The long-running debate over integer types has been + [settled][ints]: Rust will ship with types named `isize` and + `usize`, rather than `int` and `uint`, for pointer-sized + integers. Guidelines will be rolled out during the alpha cycle. + * Most crates that are not `std` have been moved out of the Rust + distribution into the Cargo ecosystem so they can evolve + separately and don't need to be stabilized as quickly, including + 'time', 'getopts', 'num', 'regex', and 'term'. + * Documentation continues to be expanded with more guides, more + API coverage and more examples. + * All official Rust binary installers now come with [Cargo], the + Rust package manager. + +* Language + + * Closures have been [completely redesigned][unboxed] to be + implemented in terms of traits, can now be used as generic type + bounds and thus monomorphized and inlined, or via an opaque + pointer (boxed) as in the old system. The new system is often + referred to as 'unboxed' closures. + * Traits now support [associated types][assoc], allowing families + of related types to be defined together and used generically in + powerful ways. + * Enum variants are [namespaced by their type names][enum]. + * [`where` clauses][where] provide a more versatile and attractive + syntax for specifying generic bounds, though the previous syntax + remains valid. + * Rust again picks a [fallback][fb] (either i32 or f64) for uninferred + numeric types. + * Rust [no longer has a runtime][rt] of any description, and only + supports OS threads, not green threads. + * At long last, Rust has been overhauled for 'dynamically-sized + types' ([DST]), which integrates 'fat pointers' (object types, + arrays, and `str`) more deeply into the type system, making it + more consistent. + * Rust now has a general [range syntax][range], `i..j`, `i..`, and + `..j` that produce range types and which, when combined with the + `Index` operator and multidispatch, leads to a convenient slice + notation, `[i..j]`. + * The new range syntax revealed an ambiguity in the fixed-length + array syntax, so now fixed length arrays [are written `[T; + N]`][arrays]. + * The `Copy` trait is no longer implemented automatically. Unsafe + pointers no longer implement `Sync` and `Send` so types + containing them don't automatically either. `Sync` and `Send` + are now 'unsafe traits' so one can "forcibly" implement them via + `unsafe impl` if a type confirms to the requirements for them + even though the internals do not (e.g. structs containing unsafe + pointers like `Arc`). These changes are intended to prevent some + footguns and are collectively known as [opt-in built-in + traits][oibit] (though `Sync` and `Send` will soon become pure + library types unknown to the compiler). + * Operator traits now take their operands [by value][ops], and + comparison traits can use multidispatch to compare one type + against multiple other types, allowing e.g. `String` to be + compared with `&str`. + * `if let` and `while let` are no longer feature-gated. + * Rust has adopted a more [uniform syntax for escaping unicode + characters][unicode]. + * `macro_rules!` [has been declared stable][mac]. Though it is a + flawed system it is sufficiently popular that it must be usable + for 1.0. Effort has gone into [future-proofing][mac-future] it + in ways that will allow other macro systems to be developed in + parallel, and won't otherwise impact the evolution of the + language. + * The prelude has been [pared back significantly][prelude] such + that it is the minimum necessary to support the most pervasive + code patterns, and through [generalized where clauses][where] + many of the prelude extension traits have been consolidated. + * Rust's rudimentary reflection [has been removed][refl], as it + incurred too much code generation for little benefit. + * [Struct variants][structvars] are no longer feature-gated. + * Trait bounds can be [polymorphic over lifetimes][hrtb]. Also + known as 'higher-ranked trait bounds', this crucially allows + unboxed closures to work. + * Macros invocations surrounded by parens or square brackets and + not terminated by a semicolon are [parsed as + expressions][macros], which makes expressions like `vec![1i32, + 2, 3].len()` work as expected. + * Trait objects now implement their traits automatically, and + traits that can be coerced to objects now must be [object + safe][objsafe]. + * Automatically deriving traits is now done with `#[derive(...)]` + not `#[deriving(...)]` for [consistency with other naming + conventions][derive]. + * Importing the containing module or enum at the same time as + items or variants they contain is [now done with `self` instead + of `mod`][self], as in use `foo::{self, bar}` + * Glob imports are no longer feature-gated. + * The `box` operator and `box` patterns have been feature-gated + pending a redesign. For now unique boxes should be allocated + like other containers, with `Box::new`. + +* Libraries + + * A [series][coll1] of [efforts][coll2] to establish + [conventions][coll3] for collections types has resulted in API + improvements throughout the standard library. + * New [APIs for error handling][err] provide ergonomic interop + between error types, and [new conventions][err-conv] describe + more clearly the recommended error handling strategies in Rust. + * The `fail!` macro has been renamed to [`panic!`][panic] so that + it is easier to discuss failure in the context of error handling + without making clarifications as to whether you are referring to + the 'fail' macro or failure more generally. + * On Linux, `OsRng` prefers the new, more reliable `getrandom` + syscall when available. + * The 'serialize' crate has been renamed 'rustc-serialize' and + moved out of the distribution to Cargo. Although it is widely + used now, it is expected to be superceded in the near future. + * The `Show` formatter, typically implemented with + `#[derive(Show)]` is [now requested with the `{:?}` + specifier][show] and is intended for use by all types, for uses + such as `println!` debugging. The new `String` formatter must be + implemented by hand, uses the `{}` specifier, and is intended + for full-fidelity conversions of things that can logically be + represented as strings. + +* Tooling + + * [Flexible target specification][flex] allows rustc's code + generation to be configured to support otherwise-unsupported + platforms. + * Rust comes with rust-gdb and rust-lldb scripts that launch their + respective debuggers with Rust-appropriate pretty-printing. + * The Windows installation of Rust is distributed with the the + MinGW components currently required to link binaries on that + platform. + +* Misc + + * Nullable enum optimizations have been extended to more types so + that e.g. `Option>` and `Option` take up no more + space than the inner types themselves. + * Work has begun on supporting AArch64. + +[Cargo]: https://crates.io +[unboxed]: http://smallcultfollowing.com/babysteps/blog/2014/11/26/purging-proc/ +[enum]: https://github.com/rust-lang/rfcs/blob/master/text/0390-enum-namespacing.md +[flex]: https://github.com/rust-lang/rfcs/blob/master/text/0131-target-specification.md +[err]: https://github.com/rust-lang/rfcs/blob/master/text/0201-error-chaining.md +[err-conv]: https://github.com/rust-lang/rfcs/blob/master/text/0236-error-conventions.md +[rt]: https://github.com/rust-lang/rfcs/blob/master/text/0230-remove-runtime.md +[mac]: https://github.com/rust-lang/rfcs/blob/master/text/0453-macro-reform.md +[mac-future]: https://github.com/rust-lang/rfcs/pull/550 +[DST]: http://smallcultfollowing.com/babysteps/blog/2014/01/05/dst-take-5/ +[coll1]: https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md +[coll2]: https://github.com/rust-lang/rfcs/blob/master/text/0509-collections-reform-part-2.md +[coll3]: https://github.com/rust-lang/rfcs/blob/master/text/0216-collection-views.md +[ops]: https://github.com/rust-lang/rfcs/blob/master/text/0439-cmp-ops-reform.md +[prelude]: https://github.com/rust-lang/rfcs/blob/master/text/0503-prelude-stabilization.md +[where]: https://github.com/rust-lang/rfcs/blob/master/text/0135-where.md +[refl]: https://github.com/rust-lang/rfcs/blob/master/text/0379-remove-reflection.md +[panic]: https://github.com/rust-lang/rfcs/blob/master/text/0221-panic.md +[structvars]: https://github.com/rust-lang/rfcs/blob/master/text/0418-struct-variants.md +[hrtb]: https://github.com/rust-lang/rfcs/blob/master/text/0387-higher-ranked-trait-bounds.md +[unicode]: https://github.com/rust-lang/rfcs/blob/master/text/0446-es6-unicode-escapes.md +[oibit]: https://github.com/rust-lang/rfcs/blob/master/text/0019-opt-in-builtin-traits.md +[macros]: https://github.com/rust-lang/rfcs/blob/master/text/0378-expr-macros.md +[range]: https://github.com/rust-lang/rfcs/blob/master/text/0439-cmp-ops-reform.md#indexing-and-slicing +[arrays]: https://github.com/rust-lang/rfcs/blob/master/text/0520-new-array-repeat-syntax.md +[show]: https://github.com/rust-lang/rfcs/blob/master/text/0504-show-stabilization.md +[derive]: https://github.com/rust-lang/rfcs/blob/master/text/0534-deriving2derive.md +[self]: https://github.com/rust-lang/rfcs/blob/master/text/0532-self-in-use.md +[fb]: https://github.com/rust-lang/rfcs/blob/master/text/0212-restore-int-fallback.md +[objsafe]: https://github.com/rust-lang/rfcs/blob/master/text/0255-object-safety.md +[assoc]: https://github.com/rust-lang/rfcs/blob/master/text/0195-associated-items.md +[ints]: https://github.com/rust-lang/rfcs/pull/544#issuecomment-68760871 + Version 0.12.0 (October 2014) ----------------------------- diff --git a/src/doc/guide.md b/src/doc/guide.md index 66551ec499a8..fce0e6ed578d 100644 --- a/src/doc/guide.md +++ b/src/doc/guide.md @@ -90,7 +90,7 @@ $ rustc --version You should see some output that looks something like this: ```bash -rustc 0.12.0-nightly (b7aa03a3c 2014-09-28 11:38:01 +0000) +rustc 1.0.0-nightly (f11f3e7ba 2015-01-04 20:02:14 +0000) ``` If you did, Rust has been installed successfully! Congrats! diff --git a/src/etc/kate/rust.xml b/src/etc/kate/rust.xml index 1fb01767a130..41dc2d1fbda0 100644 --- a/src/etc/kate/rust.xml +++ b/src/etc/kate/rust.xml @@ -7,7 +7,7 @@ ]> - + fn