-
Notifications
You must be signed in to change notification settings - Fork 105
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
Tracking issue for nightly-1.29
branch
#95
Comments
Blocked on type inferrence bugs when processing The |
As of f4c39e9, |
As of 883cf34, Current blocker is the new allocator API, still to be investigated. |
Just posting some links regarding the allocator api which I think may be helpful: |
Thanks, but I more meant some of the additions in marking where the allocator comes from, in particular the |
|
Oh good, I don't need to worry about the |
Update before I vanish for a few days: The allocator traits (Boxer/Placer) have been removed, so handling of the |
Revision 2744a49 replaced the Currently working on "Match Ergonomics" support. |
And now (2408628) up to C generation for |
Progress on building rustc (as of d1ea840): Currently "blocked" on one of librustc's macros, which breaks the current macro_rules evaluator. Open question: Where does the |
|
So it is, but it's a crates.io dependency, so doesn't actually get built as part of the "sysroot" in the current mrustc build system... looks like that needs fixing. |
Still on librustc, |
Revision ebe84a8, still on librustc but many typecheck holes and bugs are now fixed. Match ergonomics are being annoying though. |
librustc is now building :) (as of 8777573) Up to crate 69/83 in rustc, |
a473a4e Uses a bunch of new features, including |
|
Working on ensuring that the branch still works for 1.19, revision fcb473d can compile libstd 1.19 but fails in type inference for liblog (as part of rustc) Getting inference correct is always going to be a problem, I fear. |
Update for 3bf9a10
|
@thepowersgang: Was 1.29.0 chosen by some criteria like "I know 1.30 has that feature X which we don't support, so no use in trying", or is it something like you started some time ago on 1.29.0 and will have to resync later? |
@eddyp 1.29 was nightly when the branch started, so I chose it as the new target version. |
Update for 406fe84
1.19 is still blocking in |
Annoying excerpt from hir::ExprKind::Path(ref qpath) => { // local binding
if let &hir::QPath::Resolved(_, ref path) = &qpath { |
Another quirk, which I originally solved by makign
match (self.tcx.sess.codemap().span_to_snippet(sp), &err.cmt.cat) {
...
(Ok(ref snippet), ref cat) => {
let msg = &format!("consider making `{}` mutable", snippet);
let suggestion = format!("mut {}", snippet);
if let &Categorization::Deref(ref cmt, _) = cat { |
Update from 1f432b8 - The above change to match ergonomics worked, now hitting a name resolution problem around the treatment of declarative macros as being the same as macro_rules. They instead resolve names in the context of the defining module (not the using module). |
?Final update for the week(end), revision 92afcb3 can compile all of rustc's crates, but is tripping up with a duplicate symbol during final link. |
Update for 64933e0 Cargo not yet started, due to the use of the 1.19 cargo still blocked on libgit2, quite a pain that one is. But rustc should still be compiling |
You can try making it a rlib, add all necessary rustc crates as dependencies. Then depend on it in rustc_driver and add a line like |
Or, I can add dylib support and avoid needing patches to the rustc source. That's the more correct (but slower) route |
Hi Mutabah, this is an amazing project and thanks for dedicating so much work to it. Do you have a list of incomplete tasks that need to be finished for compiling nightly-1.29? |
A short list of things that need to work
I'd have a more complete list, but my build box is currently offline. |
Thanks! I was thinking more about tasks that could be completed and contributed to mrustc. I'll have a look to see how far it gets. |
I've done some fixes over this weekend, and rustc (both 1.29 and 1.19) is building, but neither are working (1.19 fails with a duplicate symbol, 1.29 fails with an ICE). 1.19 cargo is still failing on the libgit2 inference bug, while 1.29 cargo is currently failing on a trait impl on a very-large array (2^32 elements) |
With a94abe4 rustc 1.19 is running again (can build libcore). Working on fixing rustc 1.29 (still ICEs) Once that works, plan is to get 1.29 cargo working. 1.19 cargo is half in the too-hard basket for now, as that inference error is REALLY hard to fix without breaking other code (I'm tempted to just do source patch, but that is very much cheating). |
As of 49a3ab2 rustc 1.29 can build libcore :) Now working on a niggling MIR optimisation and then will see about getting cargo working (either fixing the array size deficiency, or the type-check bug - or just patch both of those out) |
Got distracted by doing the MIR optimisations when one broke rustc (and tests), got |
Through some fiddling with handling of Current blocker: |
Slow work, managed to get cargo 1.19 up to linking (it's not linking currently, doesn't seem to be including libstd and friends) Cargo 1.29 still blocked on inference with indexing, might be related to index values being a coercion point (trying a build with that assumption). |
Cargo 1.29 now through the inference problems. Updates needed to proc macro derive (not passing attributes through to the proc macro) before it'll compile fully. Getting so close |
Cargo 1.29 is now through typechecking. Currently fails due to a closure being FnOnce instead of FnMut |
Both cargo and rustc are building 🎉 Currently working on getting the bootstrap framework working for 1.29 (have to first build libstd manually, then can run cargo on it to get a proper build) |
As of c1b32b6 |
Update: problem is caused by vtable disagreement between the mrustc-built rustc and a rustc-built |
Worked around the vtable disagreement by building rustc with itself "manually" (invoking cargo on it). Found some probable codegen errors showing up as possible non-deterministic symbol hashes. |
bootstrap is working on my primary test machine (Debian 9.9), but there's a few compilation errors on my secondary test machine (Mint 19.1) - looks like differences in libc++ implementations. Working on fixing those bugs. |
🚀 Finally! |
As of abd2a15, rustc/cargo 1.29 are building on mint too. Current tasks:
|
|
And |
🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈🎉🎈 |
Dumping ground for progress with the 1.29 upgrade branch (targeting rustc 1.29 stable, with intent to not break support for 1.19)
The text was updated successfully, but these errors were encountered: