Commit Graph

38699 Commits

Author SHA1 Message Date
Alexis
1e75a05a0e more int and cloned cleanup in collections 2015-02-13 14:12:51 -05:00
Steve Klabnik
9eb4436188 Add link to module-level Option documentation. 2015-02-13 13:47:09 -05:00
Steve Klabnik
e478f660d8 Don't specify tuple layout.
This isn't something we want to guarantee.
2015-02-13 12:53:54 -05:00
Steve Klabnik
ad2efdc67d Instead of putting them in the book, make them READMEs. 2015-02-13 12:32:37 -05:00
Renato Alves
f48eda8dc9 Fix small copy-paste typo 2015-02-13 17:09:46 +00:00
Niko Matsakis
fb05f282d7 Add #[rustc_error] annotation, which causes trans to signal an error
if found on the `main()` function. This lets you write tests that live
in `compile-fail` but are expected to compile successfully. This is
handy when you have many small variations on a theme that you want to
keep together, and you are just testing the type checker, not the
runtime semantics.
2015-02-13 11:10:51 -05:00
Felix S. Klock II
a7d5c3f682 Added all active features to the list in reference.md.
Added a second note about keeping the reference.md list up-to-date to
the bottom of the list, since not everyone (including me) reads the
big comment at the top of it.  :)

Ensured that the feature gate list in reference.md is kept in
alphabetical order.
2015-02-13 16:42:22 +01:00
Steve Klabnik
65eab6eb97 Add diverging functions to the book.
We use them in some places, but never actually talk about the syntax.
2015-02-13 10:05:33 -05:00
Felix S. Klock II
d414a39197 Re-tag slicing_syntax as Accepted.
Rollup merge (373cbab5b0) of PR #20723
accidentally reverted a portion of commit
8327bcc167 which shifted
`slicing_syntax` from Active to Accepted.
2015-02-13 15:48:05 +01:00
Steve Klabnik
114301f4f2 Refer to LLVM rather than GCC wiki for atomic orderings
Fixes #22064.
2015-02-13 09:39:36 -05:00
Steve Klabnik
58a7d58686 Re-word paragraph about enums and equality
Fixes #22035.
2015-02-13 09:37:05 -05:00
Steve Klabnik
4b25d7528b Remove outdated information about copy/move from the reference
Fixes #22136
2015-02-13 09:21:38 -05:00
Steve Klabnik
805a31fb76 Improve documentation for Select::new().
Remove incorrect claim, add example, reformat and re-word.

Fixes #22266
2015-02-13 09:11:41 -05:00
Steve Klabnik
ce22f30b9e Make note of doc duplication with reexports
Fixes #16645
2015-02-13 08:56:44 -05:00
Steve Klabnik
17f9d36d35 Improve core::cmp docs 2015-02-13 08:49:52 -05:00
Florian Hahn
f28a33359b Make if after colon lowercase 2015-02-13 10:24:05 +01:00
Kevin Yap
c5dba7275a Remove reference to mailing list
Also add address of IRC server. Addresses #22249.
2015-02-13 00:01:34 -08:00
bors
cf636c233d Auto merge of #22093 - petrochenkov:builtin, r=pnkfelix
Names of structs, enums, traits, type aliases and type parameters (i.e. all identifiers that can be used as full paths in type position) are not allowed to match the names of primitive types.
See #20427 for more information.

This is a minor [breaking-change]
2015-02-13 07:44:41 +00:00
Chris Wong
aef5551751 Rename unsafe_lang_item to unsafe_cell_lang_item 2015-02-13 19:40:22 +13:00
Chris Wong
b4a286144d Rename the "unsafe" lang item to "unsafe_cell" 2015-02-13 19:40:22 +13:00
Brian Anderson
9df38bf658 Remove some irrelevant text from README
The quick start already links to the book. I think its not necessary
to do in the build instructions.
2015-02-12 20:36:21 -08:00
Brian Anderson
8dcc886d68 Change README quick start instructions to defer entirely to the book. 2015-02-12 20:36:21 -08:00
Brian Anderson
b2f70a4159 Update uninstall instructions 2015-02-12 20:36:20 -08:00
Brian Anderson
be440bc8a6 Upgrade rust-installer 2015-02-12 20:36:17 -08:00
Huon Wilson
e4a9eb95ce Remove _VALUE from the float extremes constants.
In `std::f32` and `std::f64`:

- `MIN_VALUE` → `MIN`
- `MAX_VALUE` → `MAX`
- `MIN_POS_VALUE` → `MIN_POSITIVE`

This matches the corresponding integer constants.

[breaking-change]
2015-02-13 14:40:57 +11:00
Huon Wilson
3d9528a8d8 Unstabilise words for now.
It is not totally clear if we should just use whitespace, or if the full
unicode word-breaking algorithm is more correct. If there is demand we
can reconsider this decision (and consider the precise algorithm to use
in detail).

cc #15628.
2015-02-13 14:30:23 +11:00
bors
ba2efe96ae Auto merge of #22219 - pnkfelix:partial-reinit, r=pnkfelix
borrowck: Prevent partial reinitialization of uninitialized structures

This is a pnkfelix-swiped squash of #22079, which was a rebase and revision of #18963

Fixes #18571.
2015-02-13 02:09:15 +00:00
Duane Edwards
9c686dc54d Correct typo for 'underyling' 2015-02-13 08:45:52 +10:00
Marvin Löbel
07d00deab2 Made Self a keyword.
It is only allowed in paths now, where it will either work inside a `trait`
or `impl` item, or not resolve outside of it.

[breaking-change]

Closes #22137
2015-02-12 22:04:31 +01:00
Keegan McAllister
b7683fc02b Warn when linking a plugin into a non-plugin crate
Fixes #22202.
2015-02-12 12:44:31 -08:00
Keegan McAllister
6864792df0 Separate macro and plugin loading
Now they just share a bit of code internal to creader.

Resolves #22198 to my satisfaction.
2015-02-12 12:44:31 -08:00
Keegan McAllister
6b784bacbf creader: Clean up macro/plugin API
Step towards #22198.
2015-02-12 12:32:40 -08:00
Björn Steinbrink
3df5c4ac21 Update LLVM to disable asserts in the PassInfo cache
Fixes #22233
2015-02-12 21:30:04 +01:00
bors
39b463f153 Auto merge of #22182 - nikomatsakis:cycles-in-collect, r=nikomatsakis
This resolves a number of bugs that trigger stack overflows or other cyclic errors.

r? @nick29581 (it is based on work that you started)
f? @jroesch (also based on your branch)
2015-02-12 20:03:50 +00:00
Alex Crichton
342948670b std: Add missing stability for core::fmt
The `Arguments::new_v1_formatted` function was accidentally left out when this
module was stabilized.
2015-02-12 11:12:45 -08:00
Niko Matsakis
a25ed227a7 Pacify the merciless nrc. 2015-02-12 13:29:52 -05:00
Niko Matsakis
eec3b431aa Pacify the mercilous tidy. 2015-02-12 13:29:52 -05:00
Niko Matsakis
21fb420592 Add test that shows how a cycle between the where-clauses on a type
and the type appearing in the trait would (previously) trigger an
error message. The code is now accepted. No reported issue that I am
aware of.
2015-02-12 13:29:52 -05:00
Niko Matsakis
14141aca80 Add test for self-referencing pattern blocked by #20551. Fixes #20551. 2015-02-12 13:29:51 -05:00
Niko Matsakis
28e48f308c Add test for IntoIterator pattern blocked by #20220. Fixes #20220. 2015-02-12 13:29:51 -05:00
Niko Matsakis
c87166e149 Adjust wording of astconv comment. 2015-02-12 13:29:51 -05:00
Niko Matsakis
a6c295cb22 Modify repr() so that when -Z verbose is used, at least, it does not
fetch trait definitions. This allows is to be used early in the compiler
without triggering ICEs. Also make -Z verbose less horrifyingly ugly.
2015-02-12 13:29:51 -05:00
Niko Matsakis
3e88b5bbf9 Rote changes to fix fallout throughout the compiler from splitting the
predicates and renaming some things.
2015-02-12 13:29:51 -05:00
Alex Crichton
985fc7d09b std: Optimize Vec::from_iter
This PR is an optimization of the `FromIterator` implementation of `Vec`

Benchmark: https://gist.github.com/alexcrichton/03d666159a28a80e7c70

Before:
    test macro_repeat1     ... bench:        57 ns/iter (+/- 1)
    test macro_repeat2     ... bench:        56 ns/iter (+/- 1)
    test map_clone1        ... bench:       828 ns/iter (+/- 13)
    test map_clone2        ... bench:       828 ns/iter (+/- 8)
    test repeat1           ... bench:      1104 ns/iter (+/- 10)
    test repeat2           ... bench:      1106 ns/iter (+/- 11)

After:
    test macro_repeat1     ... bench:        75 ns/iter (+/- 21)
    test macro_repeat2     ... bench:        59 ns/iter (+/- 31)
    test map_clone1        ... bench:        34 ns/iter (+/- 22)
    test map_clone2        ... bench:        52 ns/iter (+/- 21)
    test repeat1           ... bench:        34 ns/iter (+/- 11)
    test repeat2           ... bench:        33 ns/iter (+/- 12)

The idea behind this optimization is to avoid all bounds checks for space
already allocated into the vector. This may involve running the iterator twice,
but the first run of the iterator should be optimizable to a memcpy or memset if
possible.

The same treatment can in theory be applied to `Vec::extend` but the benchmarks
for that currently get *worse* if the change is applied. This appears to be some
LLVM optimizations going awry but it's seems prudent to land at least the
`collect` portion beforehand.
2015-02-12 10:25:34 -08:00
Niko Matsakis
3764699c83 Refactor collect to separate out the computation of the type scheme
and predicates. Try to document how things work. More cleanup is
needed here but I had to draw the line somewhere gosh darn it.
2015-02-12 13:02:38 -05:00
Niko Matsakis
d1630970de Split the predicates listing out of TraitDef and TypeScheme and into a separate map, tcx.predicates, that is used for both traits and other kinds of items. Also use two newtypes to distinguish
instantiated predicates from the raw, unsubstituted predicates extracted from the map.
2015-02-12 13:02:37 -05:00
Niko Matsakis
bea8b81225 Make VecPerParamSpace support IntoIterator 2015-02-12 13:02:37 -05:00
Niko Matsakis
acd1a0090a Update metadata to reflect that predicates/schemes/trait-defs are now severed 2015-02-12 13:02:37 -05:00
Vadim Petrochenkov
8ed58d8ccc Fix duplicate error code 2015-02-12 20:31:31 +03:00
Valerii Hiora
00a6ff9571 Adjusting default CPUs for iOS
According to @dotdash it enables more aggressive optimizations from LLVM
2015-02-12 19:17:34 +02:00