<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/rt/io/native, branch master</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=master</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2013-11-12T04:44:07+00:00</updated>
<entry>
<title>Move std::rt::io to std::io</title>
<updated>2013-11-12T04:44:07+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-11-11T06:46:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=49ee49296b65f3d807142f3326bee71dd7e13290'/>
<id>urn:sha1:49ee49296b65f3d807142f3326bee71dd7e13290</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove #[fixed_stack_segment] and #[rust_stack]</title>
<updated>2013-11-11T18:40:34+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-11-06T23:16:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7755ffd0131fa99ca5d58bdd5eab443b44d5a1ff'/>
<id>urn:sha1:7755ffd0131fa99ca5d58bdd5eab443b44d5a1ff</id>
<content type='text'>
These two attributes are no longer useful now that Rust has decided to leave
segmented stacks behind. It is assumed that the rust task's stack is always
large enough to make an FFI call (due to the stack being very large).

There's always the case of stack overflow, however, to consider. This does not
change the behavior of stack overflow in Rust. This is still normally triggered
by the __morestack function and aborts the whole process.

C stack overflow will continue to corrupt the stack, however (as it did before
this commit as well). The future improvement of a guard page at the end of every
rust stack is still unimplemented and is intended to be the mechanism through
which we attempt to detect C stack overflow.

Closes #8822
Closes #10155
</content>
</entry>
<entry>
<title>Another round of test fixes from previous commits</title>
<updated>2013-11-10T09:37:12+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-11-08T04:13:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=86a321b65dcc5253f61202b2fdaac41f275344ce'/>
<id>urn:sha1:86a321b65dcc5253f61202b2fdaac41f275344ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move io::file to io::fs and fns out of File</title>
<updated>2013-11-04T18:28:55+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-10-31T22:15:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3c3ed1499a9b9e23d4a2d2243a7b0b1c9015f34b'/>
<id>urn:sha1:3c3ed1499a9b9e23d4a2d2243a7b0b1c9015f34b</id>
<content type='text'>
This renames the `file` module to `fs` because that more accurately describes
its current purpose (manipulating the filesystem, not just files).

Additionally, this adds an UnstableFileStat structure as a nested structure of
FileStat to signify that the fields should not be depended on. The structure is
currently flagged with #[unstable], but it's unlikely that it has much meaning.

Closes #10241
</content>
</entry>
<entry>
<title>Fill out the remaining functionality in io::file</title>
<updated>2013-11-03T23:15:42+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-10-30T06:31:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f19d0833625c382c5d0a8868924cd4620335e659'/>
<id>urn:sha1:f19d0833625c382c5d0a8868924cd4620335e659</id>
<content type='text'>
This adds bindings to the remaining functions provided by libuv, all of which
are useful operations on files which need to get exposed somehow.

Some highlights:

* Dropped `FileReader` and `FileWriter` and `FileStream` for one `File` type
* Moved all file-related methods to be static methods under `File`
* All directory related methods are still top-level functions
* Created `io::FilePermission` types (backed by u32) that are what you'd expect
* Created `io::FileType` and refactored `FileStat` to use FileType and
  FilePermission
* Removed the expanding matrix of `FileMode` operations. The mode of reading a
  file will not have the O_CREAT flag, but a write mode will always have the
  O_CREAT flag.

Closes #10130
Closes #10131
Closes #10121
</content>
</entry>
<entry>
<title>Remove all blocking std::os blocking functions</title>
<updated>2013-11-03T23:15:42+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-10-26T00:04:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9c1851019f1ef9511fa8731b8f1acb0796d1e97f'/>
<id>urn:sha1:9c1851019f1ef9511fa8731b8f1acb0796d1e97f</id>
<content type='text'>
This commit moves all thread-blocking I/O functions from the std::os module.
Their replacements can be found in either std::rt::io::file or in a hidden
"old_os" module inside of native::file. I didn't want to outright delete these
functions because they have a lot of special casing learned over time for each
OS/platform, and I imagine that these will someday get integrated into a
blocking implementation of IoFactory. For now, they're moved to a private module
to prevent bitrot and still have tests to ensure that they work.

I've also expanded the extensions to a few more methods defined on Path, most of
which were previously defined in std::os but now have non-thread-blocking
implementations as part of using the current IoFactory.

The api of io::file is in flux, but I plan on changing it in the next commit as
well.

Closes #10057
</content>
</entry>
<entry>
<title>Make Writer::flush a no-op default method</title>
<updated>2013-10-30T22:17:11+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-10-30T22:10:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=452e5cdf11b30e17c69805a0bfc418feebb84081'/>
<id>urn:sha1:452e5cdf11b30e17c69805a0bfc418feebb84081</id>
<content type='text'>
Closes #9126
</content>
</entry>
<entry>
<title>librustc: Implement the `proc` type as sugar for `~once fn` and `proc`</title>
<updated>2013-10-29T17:34:17+00:00</updated>
<author>
<name>Patrick Walton</name>
<email>pcwalton@mimiga.net</email>
</author>
<published>2013-10-28T22:22:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7e77bf17694e31c741fe3a31c7eca5437d9cb6d5'/>
<id>urn:sha1:7e77bf17694e31c741fe3a31c7eca5437d9cb6d5</id>
<content type='text'>
notation for closures, and disable the feature gate for `once fn` if
used with the `~` sigil.
</content>
</entry>
<entry>
<title>Test fixes and merge conflicts</title>
<updated>2013-10-24T21:21:58+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-10-18T04:08:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=620ab3853abf99ecea3a3d055f47cd6d06433c95'/>
<id>urn:sha1:620ab3853abf99ecea3a3d055f47cd6d06433c95</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move as much I/O as possible off of native::io</title>
<updated>2013-10-24T21:21:57+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-10-18T00:04:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4eb53360541baf3e6df36dc0f0766bc7c1c9f8be'/>
<id>urn:sha1:4eb53360541baf3e6df36dc0f0766bc7c1c9f8be</id>
<content type='text'>
When uv's TTY I/O is used for the stdio streams, the file descriptors are put
into a non-blocking mode. This means that other concurrent writes to the same
stream can fail with EAGAIN or EWOULDBLOCK. By all I/O to event-loop I/O, we
avoid this error.

There is one location which cannot move, which is the runtime's dumb_println
function. This was implemented to handle the EAGAIN and EWOULDBLOCK errors and
simply retry again and again.
</content>
</entry>
</feed>
