Commit Graph

18953 Commits

Author SHA1 Message Date
bors 74d9de7abd auto merge of #6979 : thestinger/rust/libc, r=brson
LLVM provides these functions as intrinsics, and will generate calls to
libc when appropriate. They are exposed in the `ptr` module as
`copy_nonoverlapping_memory`, `copy_memory` and `set_memory`.

@graydon: r?
2013-06-06 19:40:32 -07:00
bors 5d2cadbfea auto merge of #6895 : cmr/rust/jemalloc, r=brson 2013-06-06 18:43:37 -07:00
bors f2e6c01eaf auto merge of #6984 : brson/rust/rtcross, r=brson 2013-06-06 17:49:38 -07:00
James Miller de27064d84 Disallow negative counts in repeat expressions 2013-06-07 12:30:44 +12:00
Brian Anderson f702b900d8 mk: Fix _RUST_STAGEX variables under cross compile. Fix incoming 2013-06-06 17:27:22 -07:00
bors d6b4fde97e auto merge of #6982 : Aatch/rust/better-foreign-error, r=pcwalton
I encountered this. A straight fail is not useful and most people aren't going to happily spelunk in `parser.rs`
2013-06-06 16:52:36 -07:00
James Miller 9c8d0e375e Provide an actual error when expanding macros to foreign items 2013-06-07 11:28:38 +12:00
bors 6a09b6f0c3 auto merge of #6981 : jbclements/rust/fold-traverses-macros, r=catamorphism
Fixes bug #2888 . Includes test cases

r? @catamorphism
2013-06-06 15:43:35 -07:00
bors 145279709d auto merge of #6980 : Kimundi/rust/iterator-collect3, r=thestinger 2013-06-06 14:46:41 -07:00
John Clements eff49fc48b implement fold traversing macros 2013-06-06 14:21:07 -07:00
John Clements 2d59ebadb9 add test cases for fold traversing macros 2013-06-06 14:21:07 -07:00
bors 533425e242 auto merge of #6053 : nikomatsakis/rust/fixme-2699, r=thestinger
r? @jld or @graydon

The calculation looks right to me, but perhaps one of you two can double check.  You two seem like you are doing the most recent work in this sort of area.
2013-06-06 13:52:41 -07:00
Marvin Löbel cac4891154 Fixups 2013-06-06 22:40:35 +02:00
Marvin Löbel 070015468d Removed IteratorUtil::to_vec and iter::to_vec 2013-06-06 22:11:48 +02:00
Marvin Löbel 857d433b9a Added IteratorUtil::collect 2013-06-06 22:11:48 +02:00
Marvin Löbel af2086a2f1 Added iter::FromIter 2013-06-06 22:11:47 +02:00
bors a51fae097f auto merge of #6937 : msullivan/rust/no-warnings, r=bstrie 2013-06-06 12:58:41 -07:00
Daniel Micay 8bcefef2f2 libc: omit memcpy, memmove and memset
LLVM provides these functions as intrinsics, and will generate calls to
libc when appropriate. They are exposed in the `ptr` module as
`copy_nonoverlapping_memory`, `copy_memory` and `set_memory`.
2013-06-06 15:18:45 -04:00
Michael Sullivan 8bbf83b62a Clean up a handful of build warnings. 2013-06-06 12:14:41 -07:00
bors 0e96369224 auto merge of #6968 : huonw/rust/takeskip-iter, r=thestinger
@thestinger r?

Adding the dummy parameter stops the inference from having to work so hard.
2013-06-06 10:07:41 -07:00
bors 021e6d38f0 auto merge of #6975 : artagnon/rust/tuple-tostr, r=bstrie
[1/2] fixes a couple of comments.
[2/2] uses fmt! instead of hand-concatenating strings in a couple of places.

No functional changes.
2013-06-06 09:13:44 -07:00
Ramkumar Ramachandra 01c4f11cf8 libstd: use fmt! in to_str impl for (one|two)-tuple
The three-tuple uses fmt!, and there's no reason to hand-concatenate
strings.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
2013-06-06 20:50:29 +05:30
Ramkumar Ramachandra ab10b1ed29 libstd: fix comment in to_str impl of tuple
There is a pointer to #4760, which is a closed issue.  The real issue is
the more general problem described in #4653.  Correct the comment.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
2013-06-06 20:50:29 +05:30
bors 8450dc8f5e auto merge of #6972 : artagnon/rust/bad-for-loop, r=bstrie
I noticed this while reading the tutorial.

[1/2] adds tests to guard against regressions.
[2/2] corrects the tutorial.

Please let me know if you have a standard place to put tests: they seem to be all over the place currently.
2013-06-06 07:46:47 -07:00
Ramkumar Ramachandra dd923e3831 tutorial: fix for-loop example
Although in the example function `each` works as expected with
rust-0.6 (the latest release), it fails to even compile with `incoming`
rust (see test/compile-fail/bad-for-loop-2.rs). Change the function to
return a `bool` instead of `()`: this works fine with both versions of
rust, and does not misguide potential contributors.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
2013-06-06 19:43:16 +05:30
Ramkumar Ramachandra c2cb238075 test/compile-fail: clarify bad-for-loop
There are two distinct kinds of bad-for-loops to check for with two
distinct error messages.  The current bad-for-loop.rs does not make this
clear, so rewrite it into bad-for-loop{,-2}.rs.  The two failing
prototypes are:

  fn quux(_: &fn(&int) -> int) -> bool { true }
  fn quux(_: &fn(&int) -> bool) -> () { }

Note that the second one runs fine in rust-0.6 (the latest release), and
only fails with a rust built from `incoming`.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
2013-06-06 19:23:52 +05:30
bors 8f18ea8b72 auto merge of #6969 : Blei/rust/no-try, r=bstrie 2013-06-06 06:52:43 -07:00
Philipp Brüschweiler 13df1198d5 infer: remove superfluous call to try() 2013-06-06 11:53:09 +02:00
bors 7ce700aa65 auto merge of #6966 : alco/rust/fix-typo, r=sanxiyn 2013-06-06 00:58:37 -07:00
Alexei Sholik e75572c879 Deduplicate words in code comments 2013-06-06 10:48:27 +03:00
Alexei Sholik c7b19b04cb Fix duplicate words in the docs 2013-06-06 10:43:58 +03:00
Huon Wilson 32228f3d57 std: work-around for take/skip type inference (#6967) 2013-06-06 16:40:12 +10:00
bors 7e62ad6876 auto merge of #6964 : huonw/rust/vec-mut-iter, r=thestinger 2013-06-05 22:25:38 -07:00
Huon Wilson 848dbc93ee std: add an external iterator for mutating vec elements 2013-06-06 15:16:07 +10:00
bors 4a19af1b03 auto merge of #6960 : msullivan/rust/fix-pollution, r=brson 2013-06-05 19:55:36 -07:00
Brian Anderson 829b5de998 mk: Bulid rustrt with -pthread instead of -lpthread 2013-06-05 20:08:47 -04:00
Michael Sullivan 1ebb62f591 Fix stat.rs to not pollute the build directory. Closes #6959. 2013-06-05 16:00:12 -07:00
bors f5ef0766da auto merge of #6951 : artagnon/rust/makefile-git, r=brson
git log -1 --pretty=format:'%H' is a very convoluted way of saying git
rev-parse HEAD.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
2013-06-05 15:22:37 -07:00
bors 2c65e2e385 auto merge of #6956 : Blei/rust/fix-symbol-mangling, r=catamorphism
Handle more characters that appear in types, most notably <>): were
missing. Also the new scheme takes care that no two different input
strings result in the same mangled string, which was not the case before.

Fixes #6921
2013-06-05 14:13:43 -07:00
Philipp Brüschweiler eb62781720 rustc:🔙🔗 redo symbol mangling
Handle more characters that appear in types, most notably <>): were
missing. Also the new scheme takes care that no two different input
strings result in the same mangled string, which was not the case before.

Fixes #6921
2013-06-05 22:21:25 +02:00
bors 0409f86106 auto merge of #6938 : jbclements/rust/hygiene_fns_and_cleanup, r=jbclements
I'm close to flipping the switch on hygiene for let-bound identifiers.  This commit adds a bunch of support functions for that change... but also a huge amount of cleanup in syntax.rc. The most interesting of these are

- the use of TLS for the interners everywhere.  We had already breached the "no-global-state" dam by using TLS for encoding, and it saves a lot of code just to use it everywhere.
Also, there were many places where two or more interners were passed in attached to different structures, and the danger of having those diverge seemed greater that the danger of having a single one get big and heavy. If the interner size proves to be a problem, it should be quite simple to add a "parameterize"-like dynamic binding form--because we don't have interesting continuation operations (or tail calling, mostly) this should just be a case of a mutation followed by another later mutation. Again, this is only if the interner gets too big.

- I renamed the "repr" field of the identifier to "name". I can see the case for "repr" when there's only one field in the structure, but that's no longer the case; there's now a name and a context (both are uints).

- the interner now just maps between strings and uints, rather than between idents and uints. The former state made perfect sense when identifiers didn't have syntax contexts, but that's no longer the case.

I've run this patch against a fairly recent incoming, and it appears to pass all tests. Let's see if it can be merged....
2013-06-05 13:10:45 -07:00
bors c5fea4a673 auto merge of #6955 : artagnon/rust/mailmap, r=brson
Write a conservative .mailmap as an example for contributors to write
their preferred names/ email addresses to.  This patch makes no
assumptions about the same author using different email addresses, and
only collects cases where the full-name of the person is spelt
differently for the same email address.  Verify with:

  $ git shortlog -se | cut -f 2 | cut -d\< -f 2 | sort | uniq -d

It only assumes that the author prefers the full-name that appears
dominantly, by number of contributions.

For the purposes of merging, a strictly alphabetical ordering is
advised.  See MAPPING AUTHORS section of git-shortlog(1) to understand
the format of this file.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
2013-06-05 12:10:52 -07:00
John Clements 91b652695b moved TLS of sctable to ast_util, hid parameter in hygiene calls 2013-06-05 12:01:40 -07:00
John Clements fe6baa9023 added fresh-name fn 2013-06-05 12:01:40 -07:00
John Clements 5a158f1d19 add hygiene support functions 2013-06-05 12:01:40 -07:00
John Clements ecdb6e4722 remove unused get_ident_interner's 2013-06-05 12:01:40 -07:00
John Clements 8dad2bb281 removed unused imports (and one unused argument) 2013-06-05 12:01:39 -07:00
John Clements 367eddf5b1 remove interner field from string_reader 2013-06-05 12:01:39 -07:00
John Clements 19cbd0d284 remove interner from tt_reader 2013-06-05 12:01:39 -07:00
John Clements be22fddba0 rand example fixup 2013-06-05 12:01:39 -07:00