Commit graph

4107 commits

Author SHA1 Message Date
Huon Wilson
6c0a7c7b7d libcore: remove @Rng from rand, and use traits instead.
Also, rename RandRes -> IsaacRng, and make the constructors static
methods.
2013-04-24 22:34:10 +10:00
Alex Crichton
c089a17854 Improve the unused unsafe block warning to include unsafe blocks in unsafe functions 2013-04-23 19:40:34 -04:00
bors
8cadcc47ee auto merge of #6027 : alexcrichton/rust/more-backticks, r=catamorphism
It seems that the general convention of error messages is to have keywords in backticks, so it's probably a good idea to keep doing that.
2013-04-23 09:48:49 -07:00
bors
54b0cbf86e auto merge of #6020 : yichoi/rust/pull-0423, r=brson
fix for missing ARM support to pass make stage of rpass
2013-04-23 00:06:49 -07:00
Alex Crichton
8884c6abdb Use backticks for the unsafe keyword in error messages 2013-04-23 02:06:47 -04:00
Young-il Choi
8eb22ecd6d test: fix for missing ARM support 2013-04-23 11:31:54 +09:00
bors
b8441ca8a6 auto merge of #6007 : pcwalton/rust/use-mod, r=brson
r? @brson
2013-04-22 18:36:50 -07:00
bors
aba93c6b60 auto merge of #5966 : alexcrichton/rust/issue-3083, r=graydon
Closes #3083.

This takes a similar approach to #5797 where a set is present on the `tcx` of used mutable definitions. Everything is by default warned about, and analyses must explicitly add mutable definitions to this set so they're not warned about.

Most of this was pretty straightforward, although there was one caveat that I ran into when implementing it. Apparently when the old modes are used (or maybe `legacy_modes`, I'm not sure) some different code paths are taken to cause spurious warnings to be issued which shouldn't be issued. I'm not really sure how modes even worked, so I was having a lot of trouble tracking this down. I figured that because they're a legacy thing that I'd just de-mode the compiler so that the warnings wouldn't be a problem anymore (or at least for the compiler).

Other than that, the entire compiler compiles without warnings of unused mutable variables. To prevent bad warnings, #5965 should be landed (which in turn is waiting on #5963) before landing this. I figured I'd stick it out for review anyway though.
2013-04-22 15:36:51 -07:00
Patrick Walton
25129ee81c librustc: Remove use mod from the language 2013-04-22 12:32:59 -07:00
Jed Davis
edc1324e7e Add some tests for nullable-pointer enums 2013-04-22 08:51:34 -07:00
bors
6a31525c50 auto merge of #5990 : bjz/rust/rem-quot, r=catamorphism
This renaming, proposed in the [Numeric Bikeshed](https://github.com/mozilla/rust/wiki/Bikeshed-Numeric-Traits#rename-modulo-into-rem-or-remainder-in-traits-and-docs), will allow us to implement div and and modulo methods that follow the conventional mathematical definitions for negative numbers without altering the definitions of the operators (and confusing systems programmers). Here is a useful answer on StackOverflow that explains the difference between `div`/`mod` and `quot`/`rem` in Haskell: (When is the difference between quotRem and divMod useful?)[http://stackoverflow.com/a/339823/679485].

This is part of the numeric trait reforms tracked in issue #4819.
2013-04-21 12:54:51 -07:00
Brendan Zabarauskas
01eb5e8ad3 Rename Div operator trait to Quot and Modulo operator trait to Rem 2013-04-22 01:58:53 +10:00
Matthijs Hofstra
91d1d00367 Changed shootout-fasta-redux to use size_t when calling fwrite, removed XFAIL 2013-04-21 13:35:43 +02:00
Brian Anderson
59caef02ed xfail two benchmarks that are failing on the bots 2013-04-20 23:49:42 -07:00
Alex Crichton
d1985c9dd0 Implement a lint mode to deal with unused 'mut' variables 2013-04-20 21:02:38 -04:00
bors
f0afe23dce auto merge of #5978 : alexcrichton/rust/issue-5954, r=catamorphism
Closes #5954
2013-04-20 13:33:51 -07:00
Alex Crichton
3c2a44b60f Don't warn about unsafe functions which don't need to be unsafe 2013-04-20 15:52:05 -04:00
Huon Wilson
c5baeb1db3 testsuite: update tests to not use math intrinsics directly 2013-04-21 01:40:48 +10:00
Alex Crichton
93e13e0eee Fix an ICE when dereferencing types which cannot be dereferenced 2013-04-19 23:20:44 -04:00
bors
8b3c09a103 auto merge of #5962 : pcwalton/rust/shootout, r=pcwalton
r? @brson
2013-04-19 19:24:52 -07:00
Patrick Walton
d2b644842a test: xfail some benchmarks that require external libraries or inputs 2013-04-19 19:21:53 -07:00
bors
7d250d3181 auto merge of #5824 : bleibig/rust/debuginfo, r=brson
This adds debugging symbol generation for boxes, bare functions, vectors, and strings, along with a tests for boxes and vectors.

Note that gdb will see them as their actual compiled representation with the refcount, tydesc, etc. fields, so if `b` refers to box, `b->boxed` will refer to its value. Also, since you seem to use the [C struct hack](http://c-faq.com/struct/structhack.html) for dynamic vectors, you won't be able to print out the whole vector at once, only one element at a time by indexing specific elements.
2013-04-19 12:03:49 -07:00
Patrick Walton
f93b3cd5c3 librustc: Remove debug code; xfail-pretty reverse-complement. 2013-04-19 12:00:48 -07:00
Patrick Walton
af4ea11d09 test: Rewrite mandelbrot benchmark. 2013-04-19 12:00:48 -07:00
Patrick Walton
c995a62d44 librustc: WIP patch for using the return value. 2013-04-19 12:00:08 -07:00
Patrick Walton
7720c15ae1 test: Implement pidigits and reverse-complement 2013-04-19 11:56:54 -07:00
Patrick Walton
bc0dd7f108 Move shootout-k-nucleotide to bench 2013-04-19 11:56:53 -07:00
Patrick Walton
1d3231362c test: Add k-nucleotide 2013-04-19 11:56:53 -07:00
Patrick Walton
10aa1c3c05 test: Add fannkuch-redux and fasta-redux shootout benchmarks 2013-04-19 11:56:52 -07:00
Patrick Walton
9738c2a45c test: Rewrite nbody and spectralnorm shootout benchmarks 2013-04-19 11:56:52 -07:00
Patrick Walton
3ffaaab9e9 librustc: Switch the @s in types with ~ 2013-04-19 11:53:32 -07:00
Patrick Walton
f903ae9e72 librustc: Implement fast-ffi and use it in various places 2013-04-19 11:53:31 -07:00
Patrick Walton
1a36b0f17e librustc: Remove fail_unless! 2013-04-19 11:53:31 -07:00
bors
d3a58f3797 auto merge of #5943 : brson/rust/struct-return, r=graydon
Mac appears to follow the same ABI as MSVC. This fixes one case
but leaves others broken, like windows.
2013-04-18 19:45:48 -07:00
bors
df9cc2eb66 auto merge of #5924 : catamorphism/rust/non-fatal-errors, r=catamorphism 2013-04-18 16:57:51 -07:00
Tim Chevalier
62847b0f24 rustc: Make some typechecker errors non-fatal 2013-04-18 15:12:27 -07:00
Brian Leibig
d2718e6324 xfail box and vec debug info tests 2013-04-18 18:05:33 -04:00
Brian Anderson
8a6d6dd868 rustc: Fix struct returns on x86 mac for 8-byte structs
Mac appears to follow the same ABI as MSVC. This fixes one case
but leaves others broken, like windows.
2013-04-18 14:14:17 -07:00
Brian Anderson
decd3901d5 core::comm: Modernize constructors to use new 2013-04-18 14:07:35 -07:00
Brian Anderson
ab08b4fbfd core: Remove pipes::spawn_service, spawn_service_recv
These are only used in test cases; pipes isn't the right place for them;
they are unnecessary.

Conflicts:
	src/libcore/rt/uv/mod.rs
2013-04-18 14:07:35 -07:00
Brian Anderson
b18f12fb16 test: xfail-macos some tests that don't work on mac i686 2013-04-18 11:17:34 -07:00
Brian Anderson
2686dcb98e test: Add more comments about why extern-pass-TwoU64s is xfailed 2013-04-18 11:17:01 -07:00
bors
fdb4ef321e auto merge of #5726 : brson/rust/struct-return, r=brson
r? @nikomatsakis

This doesn't completely fix the x86 ABI for structs, but it does fix some cases. On linux, structs appear to be returned correctly now. On windows, structs are only returned by pointer when they are greater than 8 bytes. That scenario works now.

In the case where the struct is less than 8 bytes our generated code looks peculiar. When returning a pair of u16, C packs both variables into %eax to return them. Our generated code though expects to find one of the pair in %ax and the other in %dx. Similar for u8. I haven't looked into it yet.

There appears to also be struct passing problems on linux, where my `extern-pass-TwoU8s` and `extern-pass-TwoU16s` tests are failing.
2013-04-17 18:45:58 -07:00
Brian Anderson
a5ddc00982 rustc: Use an out pointer to return structs in x86 C ABI. #5347
This Adds a bunch of tests for passing and returning structs
of various sizes to C. It fixes the struct return rules on unix,
and on windows for structs of size > 8 bytes. Struct passing
on unix for structs under a certain size appears to still be broken.
2013-04-17 15:49:19 -07:00
Josh Matthews
97303703ee Allow casting to mutable trait objects. 2013-04-17 00:34:25 +02:00
bors
4beebc427c auto merge of #5797 : alexcrichton/rust/issue-1913, r=catamorphism
Closes #5487, #1913, and #4568

I tracked this by adding all used unsafe blocks/functions to a set on the `tcx` passed around, and then when the lint pass comes around if an unsafe block/function isn't listed in that set, it's unused.

I also removed everything from the compiler that was unused, and up to stage2 is now compiling without any known unused unsafe blocks.

I chose `unused_unsafe` as the name of the lint attribute, but there may be a better name...
2013-04-15 13:00:56 -07:00
bors
3809a04bf7 auto merge of #5778 : jld/rust/reflect-abstract-enum, r=graydon
This takes care of one of the last remnants of assumptions about enum layout.  A type visitor is now passed a function to read a value's discriminant, then accesses fields by being passed a byte offset for each one.  The latter may not be fully general, despite the constraints imposed on representations by borrowed pointers, but works for any representations currently planned and is relatively simple.

Closes #5652.
2013-04-15 09:57:55 -07:00
bors
7b152baddf auto merge of #5881 : danluu/rust/xfail_bind_by_move, r=graydon
Update an old test to pass. I'm not 100% sure what the intent of the test was, but it's hard to see how I could have corrupted the intent of the test from the tiny changes I made.
2013-04-15 08:06:57 -07:00
Dan Luu
caa1079257 Fix xfail'd ARC test 2013-04-14 11:35:58 -04:00
bors
79d4f1402e auto merge of #5779 : crabtw/rust/x86_64_abi, r=sanxiyn
This fixes #5754.
2013-04-14 00:03:54 -07:00