40697 Commits

Author SHA1 Message Date
Simonas Kazlauskas
8943709221 Update tests to match the messages 2015-04-03 15:48:07 +03:00
Simonas Kazlauskas
f1dabed82b Introduce trans::declare
We provide tools to tell what exact symbols to emit for any fn or static, but
don’t quite check if that won’t cause any issues later on. Some of the issues
include LLVM mangling our names again and our names pointing to wrong locations,
us generating dumb foreign call wrappers, linker errors, extern functions
resolving to different symbols altogether (extern {fn fail();} fail(); in some
cases calling fail1()), etc.

Before the commit we had a function called note_unique_llvm_symbol, so it is
clear somebody was aware of the issue at some point, but the function was barely
used, mostly in irrelevant locations.

Along with working on it I took liberty to start refactoring trans/base into
a few smaller modules. The refactoring is incomplete and I hope I will find some
motivation to carry on with it.

This is possibly a [breaking-change] because it makes dumbly written code
properly invalid.
2015-04-03 15:48:07 +03:00
Simonas Kazlauskas
caea044929 Move a big attribute fn into trans::attributes 2015-04-03 15:48:07 +03:00
Simonas Kazlauskas
deb097a1d2 Implement LLVMGetOrInsertGlobal wrapper 2015-04-03 15:48:07 +03:00
Simonas Kazlauskas
cb4570311b Move get_extern_fn and get_res_dtor out of base
These functions have only a single use and functionally belong to foreign and glue respectively
anyway
2015-04-03 15:48:04 +03:00
Simonas Kazlauskas
c71970eea2 Extract attribute handling code into a module
This commit causes no change in trans semantics, it just moves some functions around and
deduplicates them.
2015-04-03 15:46:09 +03:00
Simonas Kazlauskas
d36c4db96d Add the tests for duplicate symbol errors 2015-04-03 15:46:09 +03:00
Simonas Kazlauskas
baa52caf83 Abort creating wrapper fn for multiple inner fns
This discovers another class of mis-trans where we wrap multiple native functions into a single
wrapper, which is wrong.
2015-04-03 15:46:09 +03:00
Simonas Kazlauskas
2198969f89 Wrap LLVM’s Module::getNamedValue 2015-04-03 15:46:09 +03:00
Simonas Kazlauskas
723ca4bd4d Validate export_name attribute 2015-04-03 15:46:03 +03:00
Simonas Kazlauskas
b9a11f0f85 Fix a broken test
It emits the same symbol – `transmute` – from the same crate twice.
2015-04-03 15:37:51 +03:00
bors
82dcec7ee4 Auto merge of #23934 - lfairy:write-no-deref, r=alexcrichton
This means passing in e.g. a `Vec<u8>` or `String` will work as
intended, rather than deref-ing to `&mut [u8]` or `&mut str`.

[breaking-change]

Closes #23768
2015-04-03 07:13:51 +00:00
bors
fc98b19cf7 Auto merge of #23832 - petrochenkov:usize, r=aturon
These constants are small and can fit even in `u8`, but semantically they have type `usize` because they denote sizes and are almost always used in `usize` context. The change of their type to `u32` during the integer audit led only to the large amount of `as usize` noise (see the second commit, which removes this noise).

This is a minor [breaking-change] to an unstable interface.

r? @aturon
2015-04-03 04:29:52 +00:00
bors
5e30f05a05 Auto merge of #23974 - pnkfelix:fix-23973, r=alexcrichton
Do not suggest `#![feature(...)]` if we are in beta or stable channel.

Fix #23973
2015-04-03 01:44:00 +00:00
bors
d17d6e7f1f Auto merge of #23967 - semarie:libc-clone, r=alexcrichton
affected struct:
 - sockaddr_storage
 - sockaddr_un

apply the same method used for linux for:
 - bitrig/openbsd
 - freebsd
 - dragonfly

this commit unbreak build for openbsd (and bitrig, freebsd and dragonfly too I think)

r? @alexcrichton
2015-04-02 22:56:28 +00:00
bors
d1835ae7cc Auto merge of #23931 - steveklabnik:doc_std_fs, r=alexcrichton 2015-04-02 18:17:48 +00:00
Felix S. Klock II
f6a06808ec Fallout to tests expecting unconditional help output from missing features. 2015-04-02 19:30:45 +02:00
Felix S. Klock II
9b8957f1d4 Revise logic to match rustc::session::config::get_unstable_features_setting 2015-04-02 17:47:51 +02:00
bors
edac3ce6fb Auto merge of #23877 - richo:gardening, r=Manishearth
I also wanted to unignore https://github.com/rust-lang/rust/blob/master/src/libsyntax/ext/expand.rs#L1768-L1777 since the issue it references is closed, but the test fails, and it's internals aren't super clear to me.
2015-04-02 15:33:22 +00:00
Felix S. Klock II
eaea188d96 Do not suggest #![feature(...)] if we are in beta or stable channel.
Fix #23973
2015-04-02 17:29:22 +02:00
Steve Klabnik
187355178b Add more examples and documentation for std::fs 2015-04-02 11:12:59 -04:00
bors
9854143cba Auto merge of #23868 - mbrubeck:doc-edit, r=Manishearth
r? @steveklabnik
2015-04-02 12:47:19 +00:00
Sébastien Marie
26453bb60d unary negation of unsigned integers
unbreak build for:
 - linux (mips/mipsel)
 - freebsd
 - dragonfly
 - bitrig
 - openbsd

by converting unsigned integers `-1` to `!0`
2015-04-02 14:23:41 +02:00
Sébastien Marie
48b3def76c don't derive Clone, but impl it
affected struct:
 - sockaddr_storage
 - sockaddr_un

apply the same method used for linux for:
 - bitrig/openbsd
 - freebsd
 - dragonfly
2015-04-02 13:34:40 +02:00
bors
3e8a773bc5 Auto merge of #23822 - tanadeau:remove-box-syntax-in-pointers-doc, r=steveklabnik
This is the first use of `box`. It's an unstable feature and also isn't
consistent with the use of `Box` in the "original" code above it.

r? @steveklabnik
2015-04-02 10:02:30 +00:00
bors
cf00fc4da9 Auto merge of #23963 - alexcrichton:rollup, r=alexcrichton 2015-04-02 07:19:33 +00:00
Alex Crichton
e3b7e6caa2 Tweak relese notes + rebase fixes 2015-04-02 00:18:45 -07:00
Trent Nadeau
00d929dcb3 Moved use of box_syntax unstable feature in docs to Unstable section.
Create a new section under the Unstable section for `box` syntax and
patterns and removed their discussion from the Pointers section.
2015-04-01 21:53:37 -04:00
Alex Crichton
fb77443213 rollup merge of #23959: aturon/beta-relnotes
Collected from TWiR and the PR log.

r? @alexcrichton
f? @brson @nikomatsakis @huonw
2015-04-01 18:43:49 -07:00
Alex Crichton
57f5ac948a Test fixes and rebase conflicts, round 2 2015-04-01 18:38:24 -07:00
Alex Crichton
d49b67e255 rollup merge of #23176: huonw/rm-bounds 2015-04-01 18:38:19 -07:00
Alex Crichton
f92e7abefd rollup merge of #23860: nikomatsakis/copy-requires-clone
Conflicts:
	src/test/compile-fail/coherence-impls-copy.rs
2015-04-01 18:37:54 -07:00
Alex Crichton
05654e528d rollup merge of #23953: dhuseby/master
@alexcrichton here are the two most recent Bitrig snapshots.  As usual, please upload the snapshots to the snapshot server:

https://github.com/dhuseby/rust-cross-bitrig/blob/master/snapshots/rust-stage0-2015-03-25-a923278-bitrig-x86_64-e56c400a04bca7b52ab54e0780484bb68fa449c2.tar.bz2
https://github.com/dhuseby/rust-cross-bitrig/blob/master/snapshots/rust-stage0-2015-03-27-5520801-bitrig-x86_64-55a69b0ae5481ccda54c2fcfc54025a0945c4f57.tar.bz2

BTW, I was just able to get the Bitrig Rust build to pass "make check" so I'll submit a PR once this lands to fix the tests and get the Bitrig buildbot to finally complete a build.  That will hopefully end this nonsense of hand building and uploading snapshots. 👍
2015-04-01 18:36:21 -07:00
Alex Crichton
9edbf42a34 rollup merge of #23945: pnkfelix/gate-u-negate
Feature-gate  unsigned unary negate.

Discussed in weekly meeting here: https://github.com/rust-lang/meeting-minutes/blob/master/weekly-meetings/2015-03-31.md#feature-gate--expr

and also in the internals thread here: http://internals.rust-lang.org/t/forbid-unsigned-integer/752
2015-04-01 18:36:21 -07:00
Alex Crichton
f86318d63c Test fixes and rebase conflicts, round 2
Conflicts:
	src/libcore/num/mod.rs
2015-04-02 02:07:51 +02:00
Aaron Turon
35a6a372a6 Add release notes for 1.0.0-beta 2015-04-01 16:45:15 -07:00
Felix S. Klock II
07ff8ab885 fixes for fallout in tests/compile-fail 2015-04-02 01:43:54 +02:00
Felix S. Klock II
c8bf5f5d97 partial set of fixes for fallout in tests/run-pass 2015-04-02 01:09:05 +02:00
bors
2e3b0c051d Auto merge of #23955 - alexcrichton:rollup, r=alexcrichton 2015-04-01 22:41:08 +00:00
Alex Crichton
0304e15e5c Test fixes and rebase conflicts, round 1 2015-04-01 15:38:59 -07:00
Felix S. Klock II
b85c4d16d5 Fix bug in OverflowOps impl for unsigned integers.
Namely, the special case treatment for `div`/`rem` is only applicable
to signed integer values.

Clearly RFC 1027 would have saved us here!  ;)
2015-04-01 23:47:19 +02:00
Alex Crichton
655634e6ab rollup merge of #23949: aturon/stab-timeout
This commit renames and stabilizes:

* `Condvar::wait_timeout_ms` (renamed from `wait_timeout`)
* `thread::park_timeout_ms` (renamed from `park_timeout`)
* `thread::sleep_ms` (renamed from `sleep`)

In each case, the timeout is taken as a `u32` number of milliseconds,
rather than a `Duration`.

These functions are likely to be deprecated once a stable form of
`Duration` is available, but there is little cost to having these named
variants around, and it's crucial functionality for 1.0.

[breaking-change]

r? @alexcrichton

cc @sfackler @carllerche
2015-04-01 13:56:20 -07:00
Alex Crichton
bb252a8878 rollup merge of #23948: nikomatsakis/feature-gate-rust-abi
Like it says.

r? @alexcrichton
2015-04-01 13:56:19 -07:00
Felix S. Klock II
1c11748a54 fix typo. 2015-04-01 22:55:26 +02:00
Dave Huseby
f0a9a0ca7b manually adding the last two bitrig snapshots 2015-04-01 13:47:09 -07:00
Aaron Turon
371277fb0d Stabilize basic timeout functionality
This commit renames and stabilizes:

* `Condvar::wait_timeout_ms` (renamed from `wait_timeout`)
* `thread::park_timeout_ms` (renamed from `park_timeout`)
* `thread::sleep_ms` (renamed from `sleep`)

In each case, the timeout is taken as a `u32` number of milliseconds,
rather than a `Duration`.

These functions are likely to be deprecated once a stable form of
`Duration` is available, but there is little cost to having these named
variants around, and it's crucial functionality for 1.0.

[breaking-change]
2015-04-01 13:43:45 -07:00
Felix S. Klock II
a98e4713bf removed impls of Neg for u{8,16,32,64,size}. 2015-04-01 22:35:50 +02:00
Felix S. Klock II
98dd376f9c fallout when bootstrapping rustc. 2015-04-01 22:35:50 +02:00
Felix S. Klock II
3225b04c7d fallout from feature-gating unary negation on unsigned integers. 2015-04-01 22:34:27 +02:00
Felix S. Klock II
d8e309320d added unary_negate feature gate. 2015-04-01 22:34:26 +02:00