Commit Graph

22044 Commits

Author SHA1 Message Date
bors
60fba4d7d6 auto merge of #8880 : fhahn/rust/issue_8703, r=brson
I've started working on #8703.

RUST_LOG="::help" should work, I hope I'll be able to finish the rest this weekend.
2013-09-04 13:05:50 -07:00
bors
45c3ca72bc auto merge of #8855 : michaelwoerister/rust/captured_vars, r=jdm
This pull request includes
* support for variables captured in closures*,
* a fix for issue #8512: arguments of non-immediate type (structs, tuples, etc) passed by value can now be accessed correctly in GDB. (I managed to fix this by using `llvm::DIBuilder::createComplexVariable()`. ~~However, I am not sure if this relies on unstable implementation details of LLVM's debug info handling. I'll try to clarify this on the LLVM mailing list~~).
* simplification of the `debuginfo` module's public interface: the caller of functions like `create_local_var_metadata()` doesn't have to know and catch all cases when it mustn't call the function,
* a cleanup refactoring with unified handling for locals, [self] arguments, captured variables, and match bindings,
* and proper span information for self arguments.

\* However, see comment at 1d916ace13/src/test/debug-info/var-captured-in-nested-closure.rs (L62) . This is the same problem as with the fix for issue #8512 above: We are probably using `llvm.dbg.declare` in an unsupported way that works today but might not work after the next LLVM update.

Cheers,
Michael

Fixes #8512
Fixes #1341
2013-09-04 11:55:52 -07:00
Michael Woerister
5b94ae93f3 debuginfo: Fixed some merge fallout 2013-09-04 19:31:13 +02:00
bors
d1f90556f2 auto merge of #8901 : adridu59/rust/issue-8511, r=huonw
Android has no /tmp partition, cf. #8511.
2013-09-04 10:00:56 -07:00
Michael Woerister
c49eb075db debuginfo: Much improved handling of captured variables and by-value arguments. 2013-09-04 18:38:46 +02:00
Michael Woerister
e0b63b0e2a debuginfo: Fixed some merge fallout 2013-09-04 18:38:46 +02:00
Michael Woerister
6b2df76c24 debuginfo: Always copy args to allocas if debuginfo is enabled 2013-09-04 18:38:46 +02:00
Michael Woerister
c19f493129 debuginfo: Added test cases for structs, tuples, enums, etc passed by value.
Also updated documentation comments in debuginfo and renamed DebugContext to CrateDebugContext.
2013-09-04 18:38:46 +02:00
Michael Woerister
30375ccb30 debuginfo: Support for by-value arguments (still excluding some cases of self arguments) 2013-09-04 18:38:46 +02:00
Michael Woerister
b81ea86530 debuginfo: Support for variables captured in closures and closure type descriptions. 2013-09-04 18:38:46 +02:00
Felix S. Klock II
c326ff0c28 Another followup on #6009.
Odd that my earlier make checks did not catch this.
2013-09-04 18:08:02 +02:00
adridu59
50d4714d85 libstd/os: set tmp dir to /data/tmp on Android
Android has no /tmp partition, return /data/tmp instead. Cf. #8511.
2013-09-04 18:07:46 +02:00
bors
91922f04f8 auto merge of #8966 : FlaPer87/rust/issue/7473, r=bblum
Current access methods are nestable and unsafe. This patch renames
current methods implementation - prepends unsafe_ - and implements 2 new
methods that are both safe and un-nestable.

Fixes #7473
2013-09-04 08:50:57 -07:00
bors
67555d9bd4 auto merge of #8956 : thestinger/rust/test, r=huonw 2013-09-04 06:20:57 -07:00
Florian Hahn
e38739bb44 Convert rust_log.cpp to Rust, closes #8703 2013-09-04 14:18:56 +02:00
bors
51331f61f3 auto merge of #8974 : thestinger/rust/char, r=huonw
Closes #7609
2013-09-04 05:10:55 -07:00
Daniel Micay
62a3434529 stop treating char as an integer type
Closes #7609
2013-09-04 08:07:56 -04:00
Daniel Micay
28f36253b2 add test for tydesc name 2013-09-04 07:56:11 -04:00
Felix S. Klock II
7f834c5c07 Update clients of path.rs to use new API.
In most cases this involved removing a ~str allocations or clones
(yay), or coercing a ~str to a slice.  In a few places, I had to bind
an intermediate Path (e.g. path.pop() return values), so that it would
live long enough to support the borrowed &str.

And in a few places, where the code was actively using the property
that the old API returned ~str's, I had to put in to_owned() or
clone(); but in those cases, we're trading an allocation within the
path.rs code for one in the client code, so they neutralize each
other.
2013-09-04 13:10:32 +02:00
Felix S. Klock II
0f3c87e26e Revise path.rs API to not allocate ~str so much.
Note that I left dirname as returning ~str, because both of its
implementations work by calling dir_path, which produces a new path,
and thus we cannot borrow the result from &'a self passed to dirname
(because the new path returned by dir_path will not live long enough
to satisfy the lifetime 'a).
2013-09-04 13:07:29 +02:00
bors
787f4c986c auto merge of #8976 : alexcrichton/rust/issue-5425, r=pnkfelix
Closes #5425
2013-09-04 03:20:56 -07:00
bors
142dab4e4f auto merge of #8960 : Kimundi/rust/master, r=alexcrichton
Changed ToStr impl for Ascii
Added ToStr impl for char
2013-09-04 01:35:58 -07:00
Alex Crichton
2c573e933b Don't die with an ICE on a blank library name
Closes #5425
2013-09-04 01:09:56 -07:00
Felix S. Klock II
6fbb64acbe Make non-pub condition! expand to non-pub mod. Fix #6009. 2013-09-04 10:05:10 +02:00
Felix S. Klock II
83e19d2ead Added explicit pub to several conditions. Enables completion of #6009. 2013-09-04 10:03:47 +02:00
bors
b659fe3e50 auto merge of #8951 : chris-morgan/rust/vim-update-highlighting, r=alexcrichton
Several changes with appropriate commit messages to explain them.

The final two commits, highlighting everything in the prelude, may be a little controversial. I think it's the sensible way forward with it.
2013-09-04 00:25:56 -07:00
Flaper Fesp
d0ad251376 Use MuextArc and RWArc in docstrings 2013-09-04 09:14:56 +02:00
Alex Crichton
6b3c7cb4e2 Build rustllvm into $target/rustllvm 2013-09-03 23:48:45 -07:00
Alex Crichton
44be4a4737 Move the llvm auto-clean stamp into $target/llvm 2013-09-03 23:47:13 -07:00
bors
64ff315584 auto merge of #8950 : sanxiyn/rust/cross-xfail, r=brson 2013-09-03 23:15:56 -07:00
Alex Crichton
ba1f663bbd Raise errors on format strings with unmatched }
Otherwise extra stuff after a lone '}' character is simply ignored, which is
very bad.

Closes #8938
2013-09-03 23:02:59 -07:00
bors
1611e7b72a auto merge of #8943 : alexcrichton/rust/issue-8904, r=brson
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-03 22:05:59 -07:00
Alex Crichton
1fbbc71a33 Move llvm into the artifacts build directory 2013-09-03 20:57:41 -07:00
bors
523701aad0 auto merge of #8942 : novalis/rust/fmt, r=alexcrichton 2013-09-03 20:56:19 -07:00
novalis
5977376b46 Test and document escaping on format!() 2013-09-03 23:39:58 -04:00
Chris Morgan
9f6180413d Silence fo+=j error for users of Vim < 7.3.541. 2013-09-04 13:33:40 +10:00
bors
383073883f auto merge of #8963 : jmgrosen/rust/issue-8881, r=alexcrichton 2013-09-03 19:46:42 -07:00
Marvin Löbel
8d610e1d2d Added ToStr impl for char
Changed ToStr impl for Ascii
2013-09-04 03:19:52 +02:00
Flaper Fesp
c0aa62c872 Fixed docs and styles 2013-09-04 02:28:16 +02:00
Flaper Fesp
408367ba6d Add a safe implementation of MutexArc::access* methods
Current access methods are nestable and unsafe. This patch renames
current methods implementation - prepends unsafe_ - and implements 2 new
methods that are both safe and un-nestable.

Fixes #7473
2013-09-04 01:13:56 +02:00
Flaper Fesp
b22861d16d Rename MutexArc access methods to unsafe_access 2013-09-04 01:12:23 +02:00
jmgrosen
4a18d46130 Fixes #8881. condition! imports parent's pub identifiers 2013-09-03 16:11:00 -07:00
bors
3c4e943881 auto merge of #8954 : anasazi/rust/tcp-acceptor, r=catamorphism
The Listener trait takes two type parameters, the type of connection and the type of Acceptor,
and specifies only one method, listen, which consumes the listener and produces an Acceptor.

The Acceptor trait takes one type parameter, the type of connection, and defines two methods.
The accept() method waits for an incoming connection attempt and returns the result.
The incoming() method creates an iterator over incoming connections and is a default method.

Example:

```rust
let listener = TcpListener.bind(addr); // Bind to a socket
let acceptor = listener.listen(); // Start the listener
for stream in acceptor.incoming() {
    // Process incoming connections forever (a failure will kill the task).
}
```

Closes #8689
2013-09-03 14:56:22 -07:00
bors
b4ff0bca4c auto merge of #8921 : huonw/rust/stability, r=brson
Significant progress on #6875, enough that I'll open new bugs and turn that into a metabug when this lands.

Description & example in the commit message.
2013-09-03 12:22:16 -07:00
blake2-ppc
913d1b48ad rt::io: Rename Bytes to ByteIterator and add note about iteration 2013-09-03 20:06:45 +02:00
bors
7ee90a002a auto merge of #8934 : sfackler/rust/bufreader, r=brson 2013-09-03 11:01:17 -07:00
bors
dee9d7f97f auto merge of #8945 : alexcrichton/rust/ifmt-dont-move, r=thestinger 2013-09-03 09:50:58 -07:00
Chris Morgan
2bc408f3e3 Update highlighting for prelude changes. 2013-09-04 02:38:41 +10:00
Chris Morgan
c4b180aa9c Highlight everything in the prelude in Vim.
This is a rather more extensive change than the last, but *ever* so much
easier to maintain reasonably, as there's then something to track
directly.
2013-09-04 02:34:23 +10:00
Chris Morgan
afbf908ff4 Update a handful of keywords highlighted in Vim.
I added a few and removed a few and corrected a couple, all with
reference to the prelude. It ends up a slightly arbitrary decision
precisely what ends up in and what doesn't, unfortunately.
2013-09-04 02:34:23 +10:00