-
-
Notifications
You must be signed in to change notification settings - Fork 393
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
winapi 0.3 overhaul #316
Comments
One change I might also recommend is Once the refactoring is done, perhaps some measurements could be done to ensure that issues like #218 are addressed as well? Seems like it'll definitely get smoothed over regardless. |
@alexcrichton Unless drastic improvements are made in rustc to improve compile times, I don't think winapi will ever be able to compile quickly. Just
According to And yes, I have |
Ah well 2s is much better than the 30 today! I may have also misunderstood the issue, though, in thinking that most of winapi would be turned off by default and you'd have to opt-in to enable portions of the API. Maybe though the default set is still quite large? |
All of winapi (aside from the basic C types and macros) is feature gated and disabled by default in 0.3. It is just that |
Due to rust-lang/crates.io#7250 I will need to change the naming scheme for the features. |
Oh... it sounds grand and i'm glad that compile time will be improved. Good job dealing with this awful winapi :) |
Anything residing inside |
@schulzch Code inside |
Re: only implementing |
@Susurrus The problem is I cannot trivially generate |
What about just doing it for the easy structs then? |
Then someone would have to go through and tag every single struct appropriately. |
I needed a few functions in advapi32 and ended up going overboard and working on every possible function in there as well as many of the supporting structures. For v0.3 is it correct that I need to move the function declarations into an .rs file that lines up with the header file it's found in (I've already done that with the structs and consts)? And should everything be put in the same order as they are in the header files? Is there a known good way to handle string constants given that |
Yes.
Yes.
Just use |
Note that I already did some of advapi32 in rust-lang/cargo#438. I suggest you rebase your work off of that for merging. |
@Susurrus I've never actually dealt with PRs on GitHub. How do I take your PR against Peter's repo into my copy of the repo? I don't even care about maintaining my commits properly since a simple text merge is going to be messier than just comparing my additions completely by hand. |
Now you have a version to build on. There are other ways to do this, like if you've already done all the code:
No go through and fix all conflicts following the directions that |
All code save one function has now been ported. |
As long as @Susurrus keeps telling me to rebase, I'll keep my PR up to date. I want Windows to be as easy for people to support with their libraries as possible (though that won't be fully possible until people stop using OpenSSL, which is a pain in the butt, especially in older versions of the crate). |
All points have been covered. At this point winapi 0.3's overhaul is feature complete and people should start porting and testing against the git version to ensure everything works before I finally publish winapi 0.3. |
@retep998 could you please push the updated 0.3 docs to https://retep998.github.io/doc/winapi/ ? It would help with porting to have the updated docs available. |
That link will remain as the source of documentation for 0.2 (because it is spread across multiple crates and docs.rs does not provide search across multiple crates). docs.rs will be the source of documentation for 0.3, as soon as I publish winapi 0.3. |
this should be merged when retep998/winapi-rs#316 is landed
this should be merged when retep998/winapi-rs#316 is landed
winapi 0.3 has been published. |
All progress is in the dev branch.
Copy
andClone
.u32
.um
orshared
.foo
.pub mod foo;
to that folder's module.#[cfg(feature = "foo")]
.::
and add imports to pull in any definitions it needs from other headers.build.rs
and specify its dependencies on other headers and also libraries.build.rs
.UNION!
toUNION2!
. Once that is done, renameUNION2!
toUNION!
.The text was updated successfully, but these errors were encountered: