- 06 7月, 2014 7 次提交
-
-
由 Alex Crichton 提交于
This comit implements a new flag, --extern, which is used to specify where a crate is located. The purpose of this flag is to bypass the normal crate loading/matching of the compiler to point it directly at the right file. This flag takes the form `--extern foo=bar` where `foo` is the name of a crate and `bar` is the location at which to find the crate. Multiple `--extern` directives are allowed with the same crate name to specify the rlib/dylib pair for a crate. It is invalid to specify more than one rlib or more than one dylib, and it's required that the crates are valid rust crates. I have also added some extensive documentation to metadata::loader about how crate loading should work. RFC: 0035-remove-crate-id
-
由 Alex Crichton 提交于
The compiler will no longer insert a hash or version into a filename by default. Instead, all output is simply based off the crate name being compiled. For example, a crate name of `foo` would produce the following outputs: * bin => foo * rlib => libfoo.rlib * dylib => libfoo.{so,dylib} or foo.dll * staticlib => libfoo.a The old behavior has been moved behind a new codegen flag, `-C extra-filename=<hash>`. For example, with the "extra filename" of `bar` and a crate name of `foo`, the following outputs would be generated: * bin => foo (same old behavior) * rlib => libfoobar.rlib * dylib => libfoobar.{so,dylib} or foobar.dll * staticlib => libfoobar.a The makefiles have been altered to pass a hash by default to invocations of `rustc` so all installed rust libraries will have a hash in their filename. This is done because the standard libraries are intended to be installed into privileged directories such as /usr/local. Additionally, it involves very few build system changes! RFC: 0035-remove-crate-id [breaking-change]
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
This commit modifies crate loading to purely work off a `crate_name` and nothing else. This commit also changes the patterns recognized from `lib<foo>-*` to `lib<foo>*` to accomodate the future renamings of output files. RFC: 0035-remove-crate-id
-
由 Alex Crichton 提交于
This metadata is used to drive the hash of all symbols in a crate. The flag can be specified a multiple number of times RFC: 0035-remove-crate-id
-
由 Alex Crichton 提交于
This commit removes all support in the compiler for the #[crate_id] attribute and all of its derivative infrastructure. A list of the functionality removed is: * The #[crate_id] attribute no longer exists * There is no longer the concept of a version of a crate * Version numbers are no longer appended to symbol names * The --crate-id command line option has been removed To migrate forward, rename #[crate_id] to #[crate_name] and only the name of the crate itself should be mentioned. The version/path of the old crate id should be removed. For a transitionary state, the #[crate_id] attribute is still accepted if the #[crate_name] is not present, but it is warned about if it is the only identifier present. RFC: 0035-remove-crate-id [breaking-change]
-
由 bors 提交于
-
- 05 7月, 2014 33 次提交
-
-
由 bors 提交于
-
由 bors 提交于
Inadvertently changed the order in which destructors ran in certain cases with #15076. Fixes #15438.
-
由 bors 提交于
In my informal measurements, this brings the peak memory usage when building librustc from 1662M down to 1502M. Since 1662 - 1502 = 160, this may not recover the entirety of the observed memory regression (250M) from PR #14604. (However, according to my local measurements, the regression when building librustc was more like 209M, so perhaps this will still recover the lions share of the lost memory.)
-
由 bors 提交于
-
由 bors 提交于
The types `Bitv` and `BitvSet` are badly out of date. This PR: - cleans up the code (primarily, simplifies `Bitv` and implements `BitvSet` in terms of `Bitv`) - implements several new traits for `Bitv` - adds new functionality to `Bitv` and `BitvSet` - replaces internal iterators with external ones - updates documentation - minor bug fixes This is a significantly souped-up version of PR #15139 and is the result of the discussion there.
-
由 Felix S. Klock II 提交于
In my informal measurements, this brings the peak memory usage when building librustc from 1662M down to 1502M. Since 1662 - 1502 = 160, this may not recover the entirety of the observed memory regression (250M) from PR #14604. (However, according to my local measurements, the regression when building librustc was more like 209M, so perhaps this will still recover the lions share of the lost memory.)
-
由 Felix S. Klock II 提交于
This basically meant changing the interface so that no borrowed `&Vec` is exposed, by hiding `fn get_vec` and `fn get_mut_vec` and revising `fn all_vecs`. Instead, clients should use one of the other methods; `get_slice`, `pop`, `truncate`, `replace`, `push_all`, or `is_empty_in`, which should work for any case currently used in rustc.
-
由 bors 提交于
This pull request adds hygiene for 3 kinds of argument bindings: - arguments to item fns, - arguments to `ExprFnBlock`s, and - arguments to `ExprProc`s It also adds a bunch of unit tests, fixes a few macro uses to be non-capturing, and has a few cleanup items. local `make check` succeeds.
-
由 bors 提交于
This speeds up json serialization by removing most of the allocations.
-
由 Luqman Aden 提交于
-
由 Erick Tryzelaar 提交于
-
由 bors 提交于
-
由 Erick Tryzelaar 提交于
This significantly speeds up encoding json strings.
-
由 Kevin Ballard 提交于
-
由 Phil Dawes 提交于
Fix small bug introduced in e38cb972: PatIdent span was incorrect because self.last_span was being used before the ident token was parsed.
-
由 bors 提交于
-
由 Adolfo Ochagavía 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
also, introduce fn_decl_arg_bindings and expand_and_rename abstractions
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 John Clements 提交于
-
由 bors 提交于
This was parsed by the parser but completely ignored; not even stored in the AST! This breaks code that looks like: static X: &'static [u8] = &'static [1, 2, 3]; Change this code to the shorter: static X: &'static [u8] = &[1, 2, 3]; Closes #15312. [breaking-change] r? @nick29581
-
由 Erick Tryzelaar 提交于
-
由 bors 提交于