about summary refs log tree commit diff
path: root/src/libsyntax
AgeCommit message (Collapse)AuthorLines
2014-01-02libsyntax: De-`@mut` `Parser::last_span`Patrick Walton-34/+32
2014-01-02libsyntax: De-`@mut` `Parser::span`Patrick Walton-52/+54
2014-01-02libsyntax: De-`@mut` `token` in the parserPatrick Walton-251/+251
2014-01-02libsyntax: De-`@mut` `quote_depth` in the parserPatrick Walton-7/+7
2014-01-02libsyntax: Make the parser mutablePatrick Walton-487/+518
2014-01-02auto merge of #10696 : fhahn/rust/issue9543-remove-extern-mod-foo, r=pcwaltonbors-13/+19
This patch for #9543 throws an `obsolete syntax` error for `extern mod foo (name="bar")` . I was wondering if [this](https://github.com/fhahn/rust/compare/mozilla:master...fhahn:issue9543-remove-extern-mod-foo?expand=1#diff-da9d34ca1d0f6beee2838cf02e07345cR4444) is the correct place to do this? I think the wording of the error message could probably be improved as well. If this approach is OK, I'm going to run the whole test suite tomorrow and update the old syntax to the new one.
2014-01-02Output columns 1-based. Fixes #10848Jan Niklas Hasse-2/+2
2014-01-01Remove `extern mod foo (name="bar")` syntax, closes #9543Florian Hahn-13/+19
2014-01-01auto merge of #11255 : klutzy/rust/small-cleanup, r=pcwaltonbors-124/+92
This patchset removes some `@`s and unnecessary traits, and replaces a function (`dummy_sp()`) returning constant value by static variable.
2014-01-02syntax: expand impl_pretty_name to handle more cases.Huon Wilson-16/+61
The resulting symbol names aren't very pretty at all: trait Trait { fn method(&self); } impl<'a> Trait for ~[(&'a int, fn())] { fn method(&self) {} } gives Trait$$UP$$VEC$$TUP_2$$BP$int$$FN$$::method::...hash...::v0.0 However, at least it contain some reference to the Self type, unlike `Trait$__extensions__::method:...`, which is what the symbol name used to be for anything other than `impl Trait for foo::bar::Baz` (which became, and still becomes, `Trait$Baz::method`).
2014-01-01syntax::codemap: Add static DUMMY_SPklutzy-23/+20
It replaces `dummy_sp()`.
2014-01-01syntax::diagnostic: Remove @ from Emitterklutzy-12/+12
2014-01-01syntax::diagnostic: Remove unnecessary traitsklutzy-89/+60
This removes trait `handler` and `span_handler`, and renames `HandlerT` to `Handler`, `CodemapT` to `SpanHandler`.
2013-12-30auto merge of #11182 : luisbg/rust/crateid, r=cmrbors-55/+55
Issue #11048
2013-12-29Remove @muts from ExtCtxtSteven Fackler-20/+20
2013-12-29Start passing around &mut ExtCtxtSteven Fackler-48/+49
2013-12-29Make ast_fold take &mut selfSteven Fackler-101/+102
2013-12-29Rename PkgId to CrateIdLuis de Bethencourt-53/+53
2013-12-29Rename pkgid variablesLuis de Bethencourt-2/+2
2013-12-28Stop passing duplicate parameters in expandSteven Fackler-128/+92
2013-12-28Remove unecessary extern "Rust" specifiersSteven Fackler-17/+8
2013-12-28Stop using @ExtCtxtSteven Fackler-138/+138
2013-12-26Register new snapshotsAlex Crichton-2/+0
2013-12-24Test fixes and rebase problemsAlex Crichton-1/+0
Note that this removes a number of run-pass tests which are exercising behavior of the old runtime. This functionality no longer exists and is thoroughly tested inside of libgreen and libnative. There isn't really the notion of "starting the runtime" any more. The major notion now is "bootstrapping the initial task".
2013-12-24green: Rip the bandaid off, introduce libgreenAlex Crichton-2/+2
This extracts everything related to green scheduling from libstd and introduces a new libgreen crate. This mostly involves deleting most of std::rt and moving it to libgreen. Along with the movement of code, this commit rearchitects many functions in the scheduler in order to adapt to the fact that Local::take now *only* works on a Task, not a scheduler. This mostly just involved threading the current green task through in a few locations, but there were one or two spots where things got hairy. There are a few repercussions of this commit: * tube/rc have been removed (the runtime implementation of rc) * There is no longer a "single threaded" spawning mode for tasks. This is now encompassed by 1:1 scheduling + communication. Convenience methods have been introduced that are specific to libgreen to assist in the spawning of pools of schedulers.
2013-12-22auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichtonbors-3/+1
This uses quite a bit of unsafe code for speed and failure safety, and allocates `2*n` temporary storage. [Performance](https://gist.github.com/huonw/5547f2478380288a28c2): | n | new | priority_queue | quick3 | |-------:|---------:|---------------:|---------:| | 5 | 200 | 155 | 106 | | 100 | 6490 | 8750 | 5810 | | 10000 | 1300000 | 1790000 | 1060000 | | 100000 | 16700000 | 23600000 | 12700000 | | sorted | 520000 | 1380000 | 53900000 | | trend | 1310000 | 1690000 | 1100000 | (The times are in nanoseconds, having subtracted the set-up time (i.e. the `just_generate` bench target).) I imagine that there is still significant room for improvement, particularly because both priority_queue and quick3 are doing a static call via `Ord` or `TotalOrd` for the comparisons, while this is using a (boxed) closure. Also, this code does not `clone`, unlike `quick_sort3`; and is stable, unlike both of the others.
2013-12-22std::vec: make the sorting closure use `Ordering` rather than just beingHuon Wilson-5/+1
(implicitly) less_eq.
2013-12-20auto merge of #11077 : alexcrichton/rust/crate-id, r=cmrbors-0/+24
Right now the --crate-id and related flags are all process *after* the entire crate is parsed. This is less than desirable when used with makefiles because it means that just to learn the output name of the crate you have to parse the entire crate (unnecessary). This commit changes the behavior to lift the handling of these flags much sooner in the compilation process. This allows us to not have to parse the entire crate and only have to worry about parsing the crate attributes themselves. The related methods have all been updated to take an array of attributes rather than a crate. Additionally, this ceases duplication of the "what output are we producing" logic in order to correctly handle things in the case of --test. Finally, this adds tests for all of this functionality to ensure that it does not regress.
2013-12-21std::vec: add a sugary .sort() method for plain Ord sorting.Huon Wilson-0/+4
This moves the custom sorting to `.sort_by`.
2013-12-20auto merge of #11075 : alexcrichton/rust/issue-10392, r=brsonbors-2/+7
We decided in the 12/10/13 weekly meeting that trailing commas should be accepted pretty much anywhere. They are currently not allowed in struct patterns, and this commit adds support for that. Closes #10392
2013-12-20rustc: Improve crate id extractionAlex Crichton-0/+24
Right now the --crate-id and related flags are all process *after* the entire crate is parsed. This is less than desirable when used with makefiles because it means that just to learn the output name of the crate you have to parse the entire crate (unnecessary). This commit changes the behavior to lift the handling of these flags much sooner in the compilation process. This allows us to not have to parse the entire crate and only have to worry about parsing the crate attributes themselves. The related methods have all been updated to take an array of attributes rather than a crate. Additionally, this ceases duplication of the "what output are we producing" logic in order to correctly handle things in the case of --test. Finally, this adds tests for all of this functionality to ensure that it does not regress.
2013-12-20extra: remove sort in favour of the std method.Huon Wilson-3/+1
Fixes #9676.
2013-12-19auto merge of #11070 : ezyang/rust/better-errors, r=alexcrichtonbors-5/+14
On the advice of @huonw, I've just replaced item_span outright. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
2013-12-19Accept trailing commas in struct patternsAlex Crichton-2/+7
We decided in the 12/10/13 weekly meeting that trailing commas should be accepted pretty much anywhere. They are currently not allowed in struct patterns, and this commit adds support for that. Closes #10392
2013-12-19Rename pkgid to crate_idCorey Richardson-1/+3
Closes #11035
2013-12-19Generalize item_span into node_span, which works on more types.Edward Z. Yang-5/+14
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
2013-12-18auto merge of #10915 : alexcrichton/rust/fixes, r=ILyoanbors-0/+6
Just a little cleanup.
2013-12-17auto merge of #10972 : metajack/rust/pkgid-with-name, r=alexcrichtonbors-51/+77
This change extends the pkgid attribute to allow of explicit crate names, instead of always inferring them based on the path. This means that if your GitHub repo is called `rust-foo`, you can have your pkgid set your library name to `foo`. You'd do this with a pkgid attribute like `github.com/somewhere/rust-foo#foo:1.0`. This is half of the fix for #10922.
2013-12-17Change pkgid parser to allow overriding the inferred crate name.Jack Moffitt-51/+77
Previously the a pkgid of `foo/rust-bar#1.0` implied a crate name of `rust-bar` and didn't allow this to be overridden. Now you can override the inferred crate name with `foo/rust-bar#bar:1.0`.
2013-12-17auto merge of #11005 : sanxiyn/rust/mut, r=alexcrichtonbors-35/+28
There is no `~mut T` and `[mut T]` any more.
2013-12-17Remove obsolete mutability from ast::TySeo Sanghyeon-35/+28
2013-12-16auto merge of #10994 : ktt3ja/rust/issue-10956, r=alexcrichtonbors-0/+4
Types used inside live struct or enum are now marked live. Fix #10956 and #10993.
2013-12-16AST Visitor now walks enum discriminant expressionKiet Tran-0/+4
2013-12-15Register new snapshotsAlex Crichton-7/+1
Understand 'pkgid' in stage0. As a bonus, the snapshot now contains now metadata (now that those changes have landed), and the snapshot download is half as large as it used to be!
2013-12-15Forbid multiple imports in use statementsAlex Crichton-0/+6
Closes #10911
2013-12-15libsyntax: Implement the new `box` syntax for unique pointers.Patrick Walton-7/+25
2013-12-15librustc: Remove identifiers named `box`, since it's about to become a keyword.Patrick Walton-9/+12
2013-12-14auto merge of #10935 : sanxiyn/rust/fk-anon, r=pcwaltonbors-7/+5
2013-12-13auto merge of #10698 : metajack/rust/dep-info, r=alexcrichtonbors-1/+19
This isn't super useful for libraries yet without #10593. Fixes #7633.
2013-12-12Add --dep-info to write Makefile-compatible dependency info.Jack Moffitt-0/+4
When --dep-info is given, rustc will write out a `$input_base.d` file in the output directory that contains Makefile compatible dependency information for use with tools like make and ninja.