Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bus error 10 from using debug! too much #9975

Closed
glennsl opened this issue Oct 20, 2013 · 1 comment · Fixed by #9901
Closed

Bus error 10 from using debug! too much #9975

glennsl opened this issue Oct 20, 2013 · 1 comment · Fixed by #9901

Comments

@glennsl
Copy link

glennsl commented Oct 20, 2013

On OS X 10.8.4, x86_64-apple-darwin, rust 0.9-pre (freshly pulled).

This little snippet causes a bus error 10 for me:

do 300.times {
  debug!(".");
}

I've narrowed it down to std::fmt::write_unsafe(), but from there things start getting private and hard to probe.

An example closer to the source would be:

do 300.times { 
  format_args!(|args| {
    let mut out = std::rt::io::native::stdio::stdout();
    std::fmt::write(&mut out as &mut std::rt::io::Writer, args);
   }, ".");
}
@alexcrichton
Copy link
Member

I believe that this would be solved by #9901 by moving away from native I/O

bors added a commit that referenced this issue Oct 24, 2013
Large topics:

* Implemented `rt::io::net::unix`. We've got an implementation backed by "named pipes" for windows for free from libuv, so I'm not sure if these should be `cfg(unix)` or whether they'd be better placed in `rt::io::pipe` (which is currently kinda useless), or to leave in `unix`. Regardless, we probably shouldn't deny windows of functionality which it certainly has.
* Fully implemented `net::addrinfo`, or at least fully implemented in the sense of making the best attempt to wrap libuv's `getaddrinfo` api
* Moved standard I/O to a libuv TTY instead of just a plain old file descriptor. I found that this interacted better when closing stdin, and it has the added bonus of getting things like terminal dimentions (someone should make a progress bar now!)
* Migrate to `~Trait` instead of a typedef'd object where possible. There are only two more types which are blocked on this, and those are traits which have a method which takes by-value self (there's an open issue on this)
* Drop `rt::io::support::PathLike` in favor of just `ToCStr`. We recently had a lot of Path work done, but it still wasn't getting passed down to libuv (there was an intermediate string conversion), and this allows true paths to work all the way down to libuv (and anything else that can become a C string).
* Removes `extra::fileinput` and `extra::io_util`


Closes #9895 
Closes #9975
Closes #8330
Closes #6850 (ported lots of libraries away from std::io)
cc #4248 (implemented unix/dns)
cc #9128 (made everything truly trait objects)
@bors bors closed this as completed in 3f5b221 Oct 24, 2013
flip1995 pushed a commit to flip1995/rust that referenced this issue Dec 1, 2022
…, r=llogiq

Move `index_refutable_slice` to `pedantic`

During the creation, I out this lint into the nursery group to let it run in the wild before moving it to a commonly used group. This move never happened until now, though. It should be safe, as Clippy and I have been using it for months and there are no open issues for is :)

---

changelog: Move `index_refutable_slice` to `pedantic` (Now warn-by-default)
[rust-lang#9975](rust-lang/rust-clippy#9975)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants