Commit Graph

43518 Commits

Author SHA1 Message Date
Alex Crichton
cb7d914880 mk: Compile C code on MSVC with /MD
On MSVC there are two ways that the CRT can be linked, either statically or
dynamically. Each object file produced by the compiler is compiled against
msvcrt (a dll) or libcmt (a static library). When the linker is dealing with
more than one object file, it requires that all object files link to the same
CRT, or else the linker will spit out some errors.

For now, compile code with `-MD` as it seems to appear more often in C libraries
so we'll stick with the same trend.
2015-06-03 15:24:35 -07:00
bors
fe107b360e Auto merge of #25959 - pnkfelix:fsk-hack-move-val-init, r=nikomatsakis
Hack the move_val_init intrinsic to trans directly into the destination address.

This is to remove an intermediate (and unnecessary) alloca on the stack that one otherwise suffers when using this intrinsic.

This is part of the `box` protocol work; in particular, this is meant to address the `ptr::write` codegen issues alluded to at this comment: 

  https://github.com/rust-lang/rust/pull/22086#issuecomment-96168675

cc #22181
2015-06-03 21:46:21 +00:00
Ariel Ben-Yehuda
4b116fe38c Use a plain Vec instead of VecPerParamSpace in trait selection. 2015-06-04 00:19:18 +03:00
bors
b70f49b86f Auto merge of #24910 - steveklabnik:remove_static_assert, r=alexcrichton
This was always a weird feature, and isn't being used in the compiler.
Static assertions should be done better than this.

Fixes #13951
Fixes #23008
Fixes #6676

This is behind a feature gate, but that's still a

[breaking-change]

(It's not entirely clear to me that this should or shouldn't have an RFC, but if it does, I'm fine blocking on such a thing.)
2015-06-03 18:21:09 +00:00
webmobster
24808fa076 Add priority policy to RWLock API Documentation 2015-06-03 18:55:52 +01:00
Carol Nichols
c692d75b5a Indent 4 spaces instead of 2 2015-06-03 13:23:55 -04:00
Carol Nichols
80322e2e97 Return Ok(()) instead of Ok() 2015-06-03 13:23:40 -04:00
Carol Nichols
a41fd590a8 Use write_all instead of write_line 2015-06-03 13:23:20 -04:00
Carol Nichols
d328d6472e Add prelude to get Write 2015-06-03 13:15:50 -04:00
Ms2ger
53897baec8 Remove unused get_enum_variant_defs functions. 2015-06-03 18:58:26 +02:00
Jexell
7972a000e3 Update linked_list.rs
Removed an unnecessary `transmute` and replaced some code with an equivalent method.
2015-06-03 16:14:35 +01:00
bors
9a2f68e159 Auto merge of #25966 - pelmers:save-api, r=nrc
Move EnumData into the API, and change a few spots where we use &String[..] when it is equivalent to &String.

r? @nrc
2015-06-03 14:40:37 +00:00
Carol Nichols
9634bcbd3d Improve try! docs to make clearer it returns Result.
The API documentation is not explicit enough that because `try!` returns
`Err` early for you, you can only use it in functions that return
`Result`. The book mentions this, but if you come across `try!` outside
of the book and look it up in the docs, this restriction on the return
type of the function is not particularly clear.
2015-06-03 10:12:16 -04:00
Steve Klabnik
5235065d74 Remove #[static_assert]
This was always a weird feature, and isn't being used in the compiler.
Static assertions should be done better than this.

This implements RFC #1096.

Fixes #13951
Fixes #23008
Fixes #6676

This is behind a feature gate, but that's still a

[breaking-change]
2015-06-03 09:38:13 -04:00
Felix S. Klock II
01ddbe9f33 Fix the dropck doc formatting to avoid hitting four-space indent.
This was causing `rustdoc` to interpret the part starting with
`(A.) ...` as a code block based on its four-space indentation,
which then was treated by `rustdoc` as a *Rust* code snippet,
and thus was attempting (and failing) to parse my english as
Rust code. Thus causing the compiler-docs build to fail.

Independently, we should probably change `rustdoc` to not interpret
four-space indents as code that needs to be tested; it seems too
perilous to me at least.

(But the formatting here needed to be changed either way.)

cc Issue #25699.
2015-06-03 14:34:24 +02:00
bors
5b56d73dc0 Auto merge of #25984 - Manishearth:rollup, r=Manishearth
- Successful merges: #25939, #25963, #25970, #25971, #25974
- Failed merges:
2015-06-03 09:44:26 +00:00
Manish Goregaokar
e490c17eb5 Rollup merge of #25974 - richo:stack-msg, r=alexcrichton
These are implemented in asm, they're just not inlined.

Open questions are:
* Should I just inline them? They're.. big, but it seems as though this needs violates the #[inline(always)] gaurantees the others make.
* Does something (llvm?) provide these as intrinsics? The structure of this code suggests that we could be hoisting off something else, instead of flagrantly ignoring it like we do for power and mips.
2015-06-03 14:46:41 +05:30
Manish Goregaokar
27dd5e9ce9 Rollup merge of #25971 - richo:configurable-python, r=alexcrichton
r? @alexcrichton
2015-06-03 14:46:41 +05:30
Manish Goregaokar
a190394ae8 Rollup merge of #25970 - gkoz:make_compiler_docs, r=brson 2015-06-03 14:46:41 +05:30
Manish Goregaokar
f90aecff76 Rollup merge of #25963 - steveklabnik:link_to_cell, r=alexcrichton 2015-06-03 14:46:40 +05:30
Manish Goregaokar
3fd41d61ab Rollup merge of #25939 - wca:fix-freebsd-configure, r=alexcrichton
Bug fixes for configure on FreeBSD:
- Don't ban using gcc; newer versions can be installed and other checks should enforce its suitability.
- Don't force Rust to link itself with /usr/local/lib{,gcc4[46]}, which causes builds to fail if Rust is already installed.  I've not been able to find an use case where this is actually necessary.
2015-06-03 14:46:40 +05:30
Nick Hamann
037456a593 Make E0201 detect when duplicate function is a method. 2015-06-03 01:34:39 -05:00
Michael Sproul
25d0ef347a Improve diagnostic messages for range patterns. 2015-06-03 16:15:15 +10:00
bors
a5979be9fe Auto merge of #25938 - wca:fix-clang-check-compatibility, r=alexcrichton
Not all /bin/sh have [[ available, so for compatibility using case..esac
for pattern matching is better.
2015-06-03 06:07:44 +00:00
Nick Hamann
f1db9cd7c3 s/method/associated function/ in E0201 2015-06-02 22:15:50 -05:00
bors
2c8d75d655 Auto merge of #25935 - wesleywiser:fix_libcollection_build_warnings, r=alexcrichton
Fixes a bunch of warnings that are generated during the stage0 build of libcollections.
2015-06-03 02:47:45 +00:00
Richo Healey
506d5a8d19 std: clarify comments about sp* implementations 2015-06-02 16:55:50 -07:00
bors
e8af4752ce Auto merge of #25867 - petrochenkov:ucellv, r=alexcrichton
Now when const functions are implemented and used, the `value` field of `UnsafeCell` can be made deprecated (and then private as intended).
2015-06-02 23:23:32 +00:00
Richo Healey
de4a1dca2b configure: Allow specifying your python with --python 2015-06-02 15:16:30 -07:00
Gleb Kozyrev
b936b1bd7c mk: fix the CFG_ENABLE_COMPILER_DOCS spelling 2015-06-03 00:49:47 +03:00
ben fleis
6a92cf9ace Add note about expression vs. statement to dining philosphers problem,
to address https://github.com/rust-lang/rust/issues/25488 .
2015-06-02 22:55:39 +02:00
bors
dc1e79b3c2 Auto merge of #25926 - Ms2ger:enum_variant_ids, r=alexcrichton 2015-06-02 20:05:49 +00:00
Peter Elmers
1ef0ad8adc Change &String[..] to just &String, since it coerces to &str automatically. 2015-06-02 12:21:49 -07:00
Peter Elmers
6812ca1cc8 Move EnumData to the API. 2015-06-02 12:21:20 -07:00
bors
cc85db4ce6 Auto merge of #25868 - alexcrichton:issue-25505, r=brson
The compiler already has special support for fixing up verbatim paths with disks
on Windows to something that can be correctly passed down to gcc, and this
commit adds support for verbatim UNC paths as well.

Closes #25505
2015-06-02 16:37:21 +00:00
Steve Klabnik
e1a33aa987 Link to cell in TRPL: mutability 2015-06-02 09:37:54 -04:00
bors
c800b22e95 Auto merge of #25905 - michaelwoerister:lldb-pp-strings, r=brson
GDB and LLDB pretty printers have some common functionality and also access some common information, such as the layout of standard library types. So far, this information has been duplicated in the two pretty printing python modules. This PR introduces a common module used by both debuggers.

This PR also implements proper rendering of `String` and `&str` values in LLDB.
2015-06-02 13:07:41 +00:00
Felix S. Klock II
0b748002ec added test to ensure move_val_init still handles cleanups properly. 2015-06-02 10:37:56 +02:00
Felix S. Klock II
528ab1fe9b Hack the move_val_init intrinsic to trans directly into the destination address.
remove dead code further down for intrinsic.
2015-06-02 10:37:45 +02:00
bors
48e9ef6404 Auto merge of #25958 - Manishearth:rollup, r=Manishearth
- Successful merges: #25751, #25821, #25920, #25932, #25933, #25936, #25941, #25949, #25951
- Failed merges:
2015-06-02 08:28:20 +00:00
Manish Goregaokar
6e97b16d02 Rollup merge of #25951 - mbrubeck:nan, r=alexcrichton
This is based on the documented behavior of cmath::{fmin,fmax}.  It is also tested by existing unit tests in this module.
2015-06-02 11:14:09 +05:30
Manish Goregaokar
ce3bc8d884 Rollup merge of #25949 - mbrubeck:ndebug, r=alexcrichton
As of rust-lang/rust#22980 only `cfg(debug_assertions)` is used in the
standard library and rustc code.
2015-06-02 11:14:09 +05:30
Manish Goregaokar
98612dad9b Rollup merge of #25941 - puzza007:trpl-infinite-iterator-chain-take, r=steveklabnik 2015-06-02 11:14:08 +05:30
Manish Goregaokar
a85150b58a Rollup merge of #25936 - tshepang:patch-2, r=alexcrichton 2015-06-02 11:14:08 +05:30
Manish Goregaokar
46ebed55a6 Rollup merge of #25933 - bluss:rustdoc-fn-css, r=alexcrichton
rustdoc: Tweak css of function where clauses

Method where clauses are put indented on a new line, do the same tweak
to free functions, which makes it cleaner and easier to read.
2015-06-02 11:14:08 +05:30
Manish Goregaokar
04abc05094 Rollup merge of #25932 - bluss:doc-book-1, r=alexcrichton
trpl: Fix typo in Raw Pointers chapter
2015-06-02 11:14:08 +05:30
Manish Goregaokar
9c77784668 Rollup merge of #25920 - tshepang:option-map-example, r=Gankro 2015-06-02 11:14:08 +05:30
Manish Goregaokar
4f5a7440db Rollup merge of #25821 - jooert:remove_build_date, r=brson
Closes #25812.
2015-06-02 11:14:07 +05:30
Manish Goregaokar
7da2228861 Rollup merge of #25751 - steveklabnik:translations, r=brson
/cc @kgv, @rust-kr, @KaiserY, @mkpankov
2015-06-02 11:14:07 +05:30
bors
f14190199c Auto merge of #25848 - alexcrichton:fix-msvc, r=brson
Now that MSVC support has landed in the most recent nightlies we can now have
MSVC bootstrap itself without going through a GNU compiler first. Unfortunately,
however, the bootstrap currently fails due to the compiler not being able to
find the llvm-ar.exe tool during the stage0 libcore compile. The compiler cannot
find this tool because it's looking inside a directory that does not exist:

    $SYSROOT/rustlib/x86_64-pc-windows-gnu/bin

The `gnu` on this triple is because the bootstrap compiler's host architecture
is GNU. The build system, however, only arranges for the llvm-ar.exe tool to be
available in this location:

    $SYSROOT/rustlib/x86_64-pc-windows-msvc/bin

To resolve this discrepancy, the build system has been modified to understand
triples that are bootstrapped from another triple, and in this case copy the
native tools to the right location.
2015-06-02 05:12:51 +00:00