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

Build on stable Rust #58

Closed
kamalmarhubi opened this issue Feb 8, 2016 · 2 comments · Fixed by #476
Closed

Build on stable Rust #58

kamalmarhubi opened this issue Feb 8, 2016 · 2 comments · Fixed by #476

Comments

@kamalmarhubi
Copy link
Contributor

The main blocker for this is the use of #[fundamental] in the notification system. I haven't looked into it in too much detail, but I think this can be done by reducing the amount of typegineering going on. Thoughts?

@kamalmarhubi
Copy link
Contributor Author

Ping @Diggsey, @brson. Thoughts on this?

I'm happy to replace the notification infrastructure with something more like the emitter setup in rustc. That would get the facility without the ability to call the notifiers as though they were functions. My personal feeling is that the internal ergonomics win isn't worth requiring nightly.

@brson
Copy link
Contributor

brson commented Feb 18, 2016

Yes please! We should try to get on stable IMO.
On Feb 17, 2016 6:54 PM, "Kamal Marhubi" notifications@github.com wrote:

Ping @Diggsey https://github.com/Diggsey, @brson
https://github.com/brson. Thoughts on this?

I'm happy to replace the notification infrastructure with something more
like the emitter setup in rustc. That would get the facility without the
ability to call the notifiers as though they were functions. My personal
feeling is that the internal ergonomics win isn't worth requiring nightly.


Reply to this email directly or view it on GitHub
#58 (comment)
.

alexcrichton added a commit to alexcrichton/rustup.rs that referenced this issue 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 rust-lang#58
alexcrichton added a commit to alexcrichton/rustup.rs that referenced this issue 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 rust-lang#58
alexcrichton added a commit to alexcrichton/rustup.rs that referenced this issue May 17, 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 rust-lang#58
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