Commit Graph

23381 Commits

Author SHA1 Message Date
Daniel Micay
a6a993ee71 repr: add very basic support for functions
Closes #8917
2013-09-03 04:45:00 -04:00
Daniel Micay
09ad0cd362 add type name to the tydesc
Closes #8926
2013-09-03 04:44:47 -04:00
Alex Crichton
7e7024718a Don't have format! move out of local variables 2013-09-02 23:53:13 -07:00
Alex Crichton
36a4af49e0 Remove __extensions__ in names for a "pretty name"
As with the previous commit, this is targeted at removing the possibility of
collisions between statics. The main use case here is when there's a
type-parametric function with an inner static that's compiled as a library.
Before this commit, any impl would generate a path item of "__extensions__".
This changes this identifier to be a "pretty name", which is either the last
element of the path of the trait implemented or the last element of the type's
path that's being implemented.  That doesn't quite cut it though, so the (trait,
type) pair is hashed and again used to append information to the symbol.

Essentially, __extensions__ was removed for something nicer for debugging, and
then some more information was added to symbol name by including a hash of the
trait being implemented and type it's being implemented for. This should prevent
colliding names for inner statics in regular functions with similar names.
2013-09-02 23:12:41 -07:00
Alex Crichton
4600212a38 Fix inner statics having the same symbol name
Before, the path name for all items defined in methods of traits and impls never
took into account the name of the method. This meant that if you had two statics
of the same name in two different methods the statics would end up having the
same symbol named (even after mangling) because the path components leading to
the symbol were exactly the same (just __extensions__ and the static name).

It turns out that if you add the symbol "A" twice to LLVM, it automatically
makes the second one "A1" instead of "A". What this meant is that in local crate
compilations we never found this bug. Even across crates, this was never a
problem. The problem arises when you have generic methods that don't get
generated at compile-time of a library. If the statics were re-added to LLVM by
a client crate of a library in a different order, you would reference different
constants (the integer suffixes wouldn't be guaranteed to be the same).

This fixes the problem by adding the method name to symbol path when building
the ast_map. In doing so, two symbols in two different methods are disambiguated
against.
2013-09-02 23:12:20 -07:00
bors
58decdd7a1 auto merge of #8941 : alexcrichton/rust/fix-comment, r=thestinger 2013-09-02 22:10:57 -07:00
Alex Crichton
aeb2f88a48 Raise the file descriptor limits when running compiletest
We already do this for libstd tests automatically, and compiletest runs into the
same problems where when forking lots of processes lots of file descriptors are
created. On OSX we can use specific syscalls to raise the limits, in this
situation, though.

Closes #8904
2013-09-02 21:50:50 -07:00
Alex Crichton
70f3cabe46 Fix the std::fmt doc-block to show up in pandoc 2013-09-02 21:19:11 -07:00
bors
4f151b388b auto merge of #8936 : pnkfelix/rust/fsk-issue-2355-testcase, r=alexcrichton
Fix #2355.
2013-09-02 20:15:52 -07:00
Felix S. Klock II
ba1f44d24f Regression test for #8468. 2013-09-03 01:58:36 +02:00
Felix S. Klock II
4fa28a2e85 Allow _ param name in trait default method for #8468. 2013-09-03 01:58:12 +02:00
Felix S. Klock II
af3cde2c97 Long awaited test case for #2355. 2013-09-02 23:19:04 +02:00
bors
fc9fa2cb6c auto merge of #8933 : luqmana/rust/ot, r=pnkfelix
Fixes #6540. Also remove a fixme for #2619 since it's not relevant anymore.
2013-09-02 13:10:48 -07:00
Steven Fackler
319b8833d8 Implement BufReader 2013-09-02 14:24:21 -04:00
Luqman Aden
462604ace1 librustc: Check for empty crate link meta name and vers. 2013-09-02 13:48:20 -04:00
Luqman Aden
0691c01562 libsyntax: Remove obsolete fixme. 2013-09-02 13:48:20 -04:00
bors
7ff102a685 auto merge of #8927 : thestinger/rust/repr, r=huonw 2013-09-02 02:05:45 -07:00
Daniel Micay
67a8ea521a switch __field__ hack to <unnamed_field>
avoids conflict with fields actually named `__field__`
2013-09-02 05:00:42 -04:00
Daniel Micay
331d2d6d31 repr: handle tuple structs sanely
Closes #8919
2013-09-02 04:10:56 -04:00
bors
6a3dd30afe auto merge of #8931 : ILyoan/rust/turnoff_android_ndk_asm, r=thestinger
Now we don't need android ndk to generate unwind info for arm target thanks to LLVM upgrade.
This fix removes the ndk asm pass.
2013-09-02 00:20:44 -07:00
Daniel Micay
cc1f0027c7 repr: add support for trait objects
Closes #8916
2013-09-02 02:50:14 -04:00
bors
8f678ae688 auto merge of #8928 : novalis/rust/fix-8898, r=thestinger
I think this fixes 8898.  I'm a bit unsure about how slices and owned pointers to vectors-of-unit already worked, but since they were already working, I didn't mess with them.
2013-09-01 22:35:45 -07:00
Daniel Micay
7a52154d78 repr: print functions as fn() 2013-09-02 00:19:34 -04:00
Ilyong Cho
cbd143f966 turn off android ndk asm pass 2013-09-02 11:55:54 +09:00
novalis
c4bb88364e Fix #8898 2013-09-01 22:35:19 -04:00
blake2-ppc
61026ae621 rt::io: Add Bytes iterator for Reader
An iterator that simply calls `.read_bytes()` each iteration.

I think choosing to own the Reader value and implementing Decorator to
allow extracting it is the most generically useful. The Reader type
variable can of course be some kind of reference type that implements
Reader.
2013-09-02 03:12:32 +02:00
bors
73a28e595c auto merge of #8920 : Kimundi/rust/master, r=thestinger 2013-09-01 16:15:41 -07:00
Marvin Löbel
857f867320 Renamed syntax::ast::ident -> Ident 2013-09-02 02:51:21 +02:00
Daniel Micay
1f4aba8cbf touch llvm clean trigger 2013-09-01 15:03:28 -04:00
blake2-ppc
7c369ee733 std/extra: Add ExactSize for Bitv, DList, RingBuf, Option iterators 2013-09-01 18:20:24 +02:00
blake2-ppc
35040dfccc std::iterator: Use ExactSize, inheriting DoubleEndedIterator
Address discussion with acrichto; inherit DoubleEndedIterator so that
`.rposition()` can be a default method, and that the nische of the trait
is clear. Use assertions when using `.size_hint()` in reverse enumerate
and `.rposition()`
2013-09-01 18:17:26 +02:00
blake2-ppc
04845f0aeb std::iterator: Add back .rposition() test 2013-09-01 18:17:19 +02:00
bors
c70486fffe auto merge of #8913 : poiru/rust/issue-8702, r=cmr
Closes #8702.
2013-09-01 08:50:44 -07:00
bors
7c5398b612 auto merge of #8276 : kballard/rust/iterator-protocol, r=cmr
r? @thestinger
2013-09-01 07:00:44 -07:00
bors
66593a733d auto merge of #8911 : Kimundi/rust/master, r=huonw
Most notable: span -> Span
2013-09-01 05:30:47 -07:00
Marvin Löbel
539f37925c Modernized a few type names in rustc and syntax 2013-09-01 14:43:26 +02:00
Birunthan Mohanathas
30fc2c8df2 Fix incorrect strftime error handling in rust_localtime
Closes #8702.
2013-09-01 14:57:29 +03:00
bors
617850131b auto merge of #8907 : pnkfelix/rust/fsk-fix-makefile-8865, r=thestinger
Fix #8865.
2013-08-31 17:35:39 -07:00
bors
a60c6a8b18 auto merge of #8903 : luqmana/rust/en, r=thestinger
Fixes #8735.
2013-08-31 16:25:40 -07:00
Felix S. Klock II
b1a22518f0 small cleanup of previous commit with mucho comments. 2013-09-01 00:53:56 +02:00
bors
04fac7f90d auto merge of #8899 : thestinger/rust/repr, r=huonw 2013-08-31 15:15:40 -07:00
Felix S. Klock II
f61713a5eb hypothetical fix for #8865. 2013-09-01 00:11:30 +02:00
Daniel Micay
17f9382672 document why some tests are xfail-fast 2013-08-31 16:16:43 -04:00
bors
c8db9e2638 auto merge of #8905 : sstewartgallus/rust/cleanup_tests, r=bblum
In this commit I:
- removed unneeded heap allocations
- added extra whitespace to crowded expressions
- and removed unneeded syntax

Also, CC @bblum although this change is fairly unobjectionable.
2013-08-31 12:40:40 -07:00
Steven Stewart-Gallus
e2f2a601e8 Cleanup concurrency tests
In this commit I:
- removed unneeded heap allocations
- added extra whitespace to crowded expressions
- and removed unneeded syntax
2013-08-31 11:26:01 -07:00
Luqman Aden
ba5f101fa9 librustc: Add export_name attribute to specify symbol name. 2013-08-31 13:23:31 -04:00
Daniel Micay
6655b3c462 repr: remove trailing {} from unit-like structs 2013-08-31 03:54:15 -04:00
Daniel Micay
874611b348 repr: print the name of structs 2013-08-31 03:54:13 -04:00
bors
bb35e23f1c auto merge of #8896 : lightcatcher/rust/default_eq_fix, r=thestinger
Summary:
-removed "ne" methods in libstd and librustpkg
-made default "ne" be inlined
-made one of the "eq" methods in librustpkg follow more standard parameter naming convention
2013-08-30 21:40:32 -07:00
bors
5fe553d30f auto merge of #8862 : dcrewi/rust/drop-redundant-ord-impls, r=thestinger
If this were to break something, I would expect existing tests to catch it, and a `make check` run passes locally.
2013-08-30 20:30:35 -07:00