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

Compile on stable Rust #476

Merged
merged 4 commits into from May 27, 2016

Conversation

Projects
None yet
4 participants
@alexcrichton
Copy link
Member

alexcrichton commented May 16, 2016

This removes the usage of #[fundamental] and intrinsics::type_name in the
notifications module. The Notifyable trait and Notifier struct were also
removed in favor of just using &Fn(Notification) where necessary. This change
is less ergonomic when crossing crate boundaries where Notifier naturally
implemented Notifyable for multiple notification types before. Instead, now
closures must be written as:

&|n| prev_handler(n.into())

Which is to say that when crossing crate boundaries you need to remap
notification closures and leverage a From implementation.

This crate does not currently compile on the stable channel due to the usage
of panic::catch_unwind in the curl crate for now, but that will get fixed with
the next stable release, this is just paving the way forward!

Closes #58

@alexcrichton alexcrichton force-pushed the alexcrichton:stable-rust branch from 2f7f43d to 291000b May 16, 2016

@Diggsey

This comment has been minimized.

Copy link
Contributor

Diggsey commented May 16, 2016

Nice! This isn't a criticism, but why did you choose to explicitly call .into() rather than making the existing ntfy!(x) macro expand to &|n| x(n.into())?

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented May 16, 2016

Ah yeah that'd be possible, I just figured that the layer of a macro indirection probably wasn't worth it.

@bors

This comment has been minimized.

Copy link
Contributor

bors commented May 17, 2016

☔️ The latest upstream changes (presumably #420) made this pull request unmergeable. Please resolve the merge conflicts.

@brson

This comment has been minimized.

Copy link
Contributor

brson commented May 17, 2016

lgtm

Compile on stable Rust
This removes the usage of #[fundamental] and intrinsics::type_name in the
notifications module. The `Notifyable` trait and `Notifier` struct were also
removed in favor of just using `&Fn(Notification)` where necessary. This change
is less ergonomic when crossing crate boundaries where `Notifier` naturally
implemented `Notifyable` for multiple notification types before. Instead, now
closures must be written as:

    &|n| prev_handler(n.into())

Which is to say that when crossing crate boundaries you need to remap
notification closures and leverage a `From` implementation.

This crate does not currently compile on the stable *channel* due to the usage
of `panic::catch_unwind` in the curl crate for now, but that will get fixed with
the next stable release, this is just paving the way forward!

Closes #58

@alexcrichton alexcrichton force-pushed the alexcrichton:stable-rust branch from 291000b to e995b45 May 17, 2016

@alexcrichton alexcrichton force-pushed the alexcrichton:stable-rust branch 2 times, most recently from 0c1e32e to be106e7 May 27, 2016

symlink the rustup-init binary during tests
We can't open it for writing as any concurrent forks would keep a writable file
descriptor open which would prevent us from then executing the file with a "text
file busy" error.

On windows we keep copying as this problem isn't present and symlinks don't work
that well on Windows.

@alexcrichton alexcrichton force-pushed the alexcrichton:stable-rust branch from be106e7 to 1d0a40d May 27, 2016

@alexcrichton alexcrichton merged commit ba855de into rust-lang:master May 27, 2016

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@alexcrichton alexcrichton deleted the alexcrichton:stable-rust branch May 27, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.