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

Stable support #17

Closed
Hoverbear opened this issue May 29, 2015 · 19 comments
Closed

Stable support #17

Hoverbear opened this issue May 29, 2015 · 19 comments

Comments

@Hoverbear
Copy link

Hoverbear commented May 29, 2015

I (@lambda-fairy) am adopting the top comment to summarize the unstable features used in Maud. The original text can be found at the bottom of this comment.

Summary of unstable features:


Original comment by Hoverbear:

Hey! You might be able to get this to work on stable with Syntex.

@lambda-fairy
Copy link
Owner

Good idea.

I'm busy with other things at the moment, but I'll be happy to take a PR if it's not too intrusive.

@TheNeikos
Copy link
Contributor

TheNeikos commented Oct 18, 2016

This has been rendered not possible for now due to a feature usage: https://github.com/lfairy/maud/blob/master/maud/src/lib.rs#L1

@Hoverbear
Copy link
Author

Specialize is expected to land eventually so this should be possible again within the next 18 weeks. :)

@lambda-fairy
Copy link
Owner

@Hoverbear do you have a source for that? According to rust-lang/rust#31844 there's still a soundness hole in the implementation, and I don't think they'd stabilize before that gets fixed.

@Hoverbear
Copy link
Author

Ah yes you're right! Darn. :(

@lambda-fairy
Copy link
Owner

lambda-fairy commented Dec 30, 2016

We probably want to skip straight to rust-lang/rust#38356 when that's ready.

The library only uses specialization for optimizations, so it's harmless to remove that feature if need be. That might be useful if somehow procedural macros stabilize before specialization.

@dmwp37
Copy link

dmwp37 commented Nov 24, 2017

proc-macro2 may help to remove the #![feature(proc_macro)] feature dependency

@lambda-fairy
Copy link
Owner

Macros 1.2 will stabilize function-like macros, but "only invoked in module contexts, not as expressions or inside functions."

This rules out Maud for the time being, but is a step in the right direction nonetheless.

@lambda-fairy
Copy link
Owner

I'm marking this as blocked for now, unless someone is determined enough to make this work as a build script 😛

@madmaxio
Copy link

Hey, this is still low priority thing?

@lambda-fairy
Copy link
Owner

@madmaxio yes – nothing about the linked issues has changed since the last update.

@madmaxio
Copy link

madmaxio commented Mar 1, 2019

You are talking about things @Hoverbear listed, right?

@lambda-fairy
Copy link
Owner

Hoverbear didn't list them (read the comment carefully), but yes 🙂

@jhpratt
Copy link

jhpratt commented May 12, 2020

With proc macro hygiene almost certainly landing on stable in 1.45, is there any change this might be considered again?

@madmaxio
Copy link

Proc macro thing go stable? Really?

@jhpratt
Copy link

jhpratt commented May 12, 2020

Yup! It's in FCP now.

@lambda-fairy
Copy link
Owner

Thanks for the heads up @jhpratt! For some reason I wasn't subscribed to that tracking issue, so I almost missed it altogether.

I think the next step is to scope out what is to be done. It's not as simple as removing a #![feature] flag -- we have to decide what to do with the diagnostic messages, for example. I'm hoping to get a plan together by the end of the month.

@lambda-fairy
Copy link
Owner

As promised, I've written up some tasks: https://github.com/lambda-fairy/maud/milestone/1

Feel free to take any of them! (But please comment on the issue if you do, so that other people know you're working on it.)

That's not the complete list, but I think that's all that can be parallelized at this time. The remaining two items (translating errors to panics, migrating to proc_macro2) will involve much churn and may conflict with other work if done up front.

@lambda-fairy
Copy link
Owner

0.22.1 works on stable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants