about summary refs log tree commit diff
path: root/src/librustc/front/std_inject.rs
AgeCommit message (Collapse)AuthorLines
2014-01-01syntax::codemap: Add static DUMMY_SPklutzy-7/+7
It replaces `dummy_sp()`.
2013-12-29Make ast_fold take &mut selfSteven Fackler-4/+4
2013-12-26librustc: De-`@mut` `building_library` in the sessionPatrick Walton-1/+1
2013-12-24rustc: Temporarily inject libgreen with librustuvAlex Crichton-0/+9
This measure is simply to allow programs to continue compiling as they once did. In the future, this needs a more robust solution to choose how to start with libgreen or libnative.
2013-11-26Support multiple item macrosSteven Fackler-2/+3
Closes #4375
2013-11-08Generalize AST and ty::Generics to accept multiple lifetimes.Niko Matsakis-2/+2
2013-10-29Move rust's uv implementation to its own crateAlex Crichton-7/+22
There are a few reasons that this is a desirable move to take: 1. Proof of concept that a third party event loop is possible 2. Clear separation of responsibility between rt::io and the uv-backend 3. Enforce in the future that the event loop is "pluggable" and replacable Here's a quick summary of the points of this pull request which make this possible: * Two new lang items were introduced: event_loop, and event_loop_factory. The idea of a "factory" is to define a function which can be called with no arguments and will return the new event loop as a trait object. This factory is emitted to the crate map when building an executable. The factory doesn't have to exist, and when it doesn't then an empty slot is in the crate map and a basic event loop with no I/O support is provided to the runtime. * When building an executable, then the rustuv crate will be linked by default (providing a default implementation of the event loop) via a similar method to injecting a dependency on libstd. This is currently the only location where the rustuv crate is ever linked. * There is a new #[no_uv] attribute (implied by #[no_std]) which denies implicitly linking to rustuv by default Closes #5019
2013-09-29Remove all usage of @ast::CrateAlex Crichton-8/+7
2013-09-26Update version numbers to 0.9-preBrian Anderson-1/+1
2013-09-23librustc: Change fold to use traits instead of `@fn`.Patrick Walton-83/+96
2013-09-21Update version numbers to 0.8Brian Anderson-1/+1
2013-09-10Delay assignment of node ids until after expansion. Ensures that each AST nodeNiko Matsakis-2/+2
has a unique id. Fixes numerous bugs in macro expansion and deriving. Add two representative tests. Fixes #7971 Fixes #6304 Fixes #8367 Fixes #8754 Fixes #8852 Fixes #2543 Fixes #7654
2013-09-01Modernized a few type names in rustc and syntaxMarvin Löbel-2/+2
2013-08-27librustc: Add support for type parameters in the middle of paths.Patrick Walton-5/+12
For example, `foo::<T>::bar::<U>`. This doesn't enforce that the type parameters are in the right positions, however.
2013-08-09std/rustc/rustpkg/syntax: Support the `extern mod = ...` formTim Chevalier-1/+1
This commit allows you to write: extern mod x = "a/b/c"; which means rustc will search in the RUST_PATH for a package with ID a/b/c, and bind it to the name `x` if it's found. Incidentally, move get_relative_to from back::rpath into std::path
2013-07-22Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg.Michael Woerister-9/+9
`crate => Crate` `local => Local` `blk => Block` `crate_num => CrateNum` `crate_cfg => CrateConfig` Also, Crate and Local are not wrapped in spanned<T> anymore.
2013-07-20syntax: modernise attribute handling in syntax::attr.Huon Wilson-11/+5
This does a number of things, but especially dramatically reduce the number of allocations performed for operations involving attributes/ meta items: - Converts ast::meta_item & ast::attribute and other associated enums to CamelCase. - Converts several standalone functions in syntax::attr into methods, defined on two traits AttrMetaMethods & AttributeMethods. The former is common to both MetaItem and Attribute since the latter is a thin wrapper around the former. - Deletes functions that are unnecessary due to iterators. - Converts other standalone functions to use iterators and the generic AttrMetaMethods rather than allocating a lot of new vectors (e.g. the old code would have to allocate a new vector to use functions that operated on &[meta_item] on &[attribute].) - Moves the core algorithm of the #[cfg] matching to syntax::attr, similar to find_inline_attr and find_linkage_metas. This doesn't have much of an effect on the speed of #[cfg] stripping, despite hugely reducing the number of allocations performed; presumably most of the time is spent in the ast folder rather than doing attribute checks. Also fixes the Eq instance of MetaItem_ to correctly ignore spaces, so that `rustc --cfg 'foo(bar)'` now works.
2013-07-17librustc: Remove all uses of the `Copy` bound.Patrick Walton-1/+1
2013-07-17librustc: Remove all uses of "copy".Patrick Walton-3/+3
2013-07-17rustc: implement a `#[no_implicit_prelude]` attribute.Huon Wilson-1/+19
It disables the insertion of `use std::prelude::*;` into the top of all the modules below the item on which it is placed (including that item itself).
2013-07-08Bump version numbers to 0.8-preBrian Anderson-1/+1
2013-07-07De-managed ast::PathJames Miller-1/+1
2013-07-07Stop allocating view_items with @James Miller-2/+2
2013-06-30Bump version from 0.7-pre to 0.7Brian Anderson-1/+1
2013-06-29Great renaming: propagate throughout the rest of the codebaseCorey Richardson-2/+1
2013-06-27Remove many shared pointersPhilipp Brüschweiler-2/+2
Mostly just low-haning fruit, i.e. function arguments that were @ even though & would work just as well. Reduces librustc.so size by 200k when compiling without -O, by 100k when compiling with -O.
2013-06-13Use @str instead of @~str in libsyntax and librustc. Fixes #5048.Huon Wilson-2/+2
This almost removes the StringRef wrapper, since all strings are Equiv-alent now. Removes a lot of `/* bad */ copy *`'s, and converts several things to be &'static str (the lint table and the intrinsics table). There are many instances of .to_managed(), unfortunately.
2013-05-29librustc: Stop reexporting the standard modules from prelude.Patrick Walton-1/+2
2013-05-22librustc: Make `std_inject` inject the name `std`, not `core`Patrick Walton-2/+2
2013-05-22libextra: Rename the actual metadata names of libcore to libstd and libstd ↵Patrick Walton-0/+2
to libextra
2013-05-22librustc: Rename core injection to std injectionPatrick Walton-0/+107