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

Tracking issue for Rust high-pri or blocking issues for Servo & Gecko #2853

Closed
1 task
larsbergstrom opened this issue Jul 16, 2014 · 34 comments
Closed
1 task
Assignees
Labels
B-feature-tracking This issue tracks a particular high-level feature

Comments

@larsbergstrom
Copy link
Contributor

This issue will track all of the high-priority or blocking issues that Servo currently is waiting on in Rust. Issues created in Rust should reference this issue, and this top comment will be updated with links to those issues.

Rust

Bugs

Faster incremental builds

rust-lang/rust#27840

Optimized representations

rust-lang/rfcs#317

Cross memory-model data

rust-lang/rfcs#318

Virtual structs

jdm's requirements: https://gist.github.com/jdm/9900569
Leading current proposal: rust-lang/rfcs#349

Expose variadic functions to C

Right now, we work around it with a manual wrapper:
https://github.com/servo/servo/blob/master/ports/gonk/src/native_window_glue.cpp#L19-L22

Integer overflow

We'd love to at least have it per-crate, but honestly we'd consider shipping with it on by default.
rust-lang/cargo#2262
and: http://robert.ocallahan.org/2016/02/rewrite-everything-in-rust.html: we should try to make Rust release builds check for integer overflow by default.

Cargo

Rustdoc

@kmcallister
Copy link
Contributor

The fix for rust-lang/rust#15750 looks good! There are a few cases it still doesn't handle properly (see rust-lang/rust#16617) but I was able to work around all of those.

@kmcallister
Copy link
Contributor

No longer blocking on rust-lang/rust#16643; desugaring the for loop myself is a fine workaround for now.

@metajack
Copy link
Contributor

rust#14344 isn't fixed yet, but we appear to have found a workaround so it is not blocking anything.

@SimonSapin
Copy link
Member

Today’s Rust upgrade is blocked on rust-lang/rust#18659

@kmcallister
Copy link
Contributor

rust-lang/rust#18671 is no longer blocking.

@jdm
Copy link
Member

jdm commented Nov 25, 2014

rust-lang/rust#19318 is killing me right now.

@tshepang
Copy link
Contributor

Wouldn't rust-lang/cargo#1171 be worked-around by getting packages from crates.io instead of from git?

@SimonSapin
Copy link
Member

@tshepang crates.io has a size limit on packages, 10 MB I believe. A Skia checkout (not counting the git repository) is ~45 MB.

@tshepang
Copy link
Contributor

Wow, that package is very very not-small. Thanks for the info.

@SimonSapin
Copy link
Member

The current Rust upgrade is blocked on one of rust-lang/rust#21883 or rust-lang/rust#21884 being fixed. (I’d prefer the latter. The former is just one instance of this problem, there might be other I haven’t found yet.)

@Manishearth
Copy link
Member

Chris and some others fixed the stability of hash and time, I added a check to ensure that doesn't happen again. It isn't perfect, but we can also bypass this using !#[feature(unmarked_api)] (rust-lang/rust#21910)

@Manishearth
Copy link
Member

Gonk blocker: rust-lang/cargo#1293

@Manishearth
Copy link
Member

Not a blocker (until next week), but rust-lang/cargo#1351

@SimonSapin
Copy link
Member

rust-lang/rust#23338 has a work-around, but happens a lot and gets tedious.

@kmcallister
Copy link
Contributor

html5ever is hitting rust-lang/rust#23407

@metajack
Copy link
Contributor

rust-lang/rust#23488 prevents us from having good performance monitoring on linux
and
rust-lang/cargo#1432 prevents us from setting debug=true to work around the problem

@kmcallister
Copy link
Contributor

html5ever keeps running into rust-lang/rust#23110 in the test suite.

@kmcallister
Copy link
Contributor

Servo's #2385 (compile-fail tests) is ever more of a concern as our plugins grow more magical. The upstream ticket is rust-lang/rust#12335.

@jdm
Copy link
Member

jdm commented May 12, 2015

@kmcallister https://github.com/laumann/compiletest-rs exists and #5646 is tracking integrating it.

@kmcallister
Copy link
Contributor

Cool.

@Manishearth
Copy link
Member

Rust-in-Gecko blocker: rust-lang/rust#25342 (Alex/Felix are already aware of it)

@SimonSapin
Copy link
Member

rust-lang/rust#25748 will block the next rustup (unless we find at least a work around).

@SimonSapin
Copy link
Member

rust-lang/cargo#1897 blocks cargoup (#7049).

@Manishearth
Copy link
Member

rust-lang/rust#28559 blocks rustup

@mbrubeck
Copy link
Contributor

mbrubeck commented Oct 9, 2015

rust-lang/rust#28924 blocks #7933

@SimonSapin
Copy link
Member

I want to make changes (servo/rust-cssparser#90) that trigger rust-lang/rust#28934, and so would block our next rustup.

@larsbergstrom larsbergstrom changed the title Tracking issue for Rust high-pri or blocking issues Tracking issue for Rust high-pri or blocking issues for Servo & Gecko Nov 7, 2015
@SimonSapin
Copy link
Member

rust-lang/libc#70 blocks #8446 (probably)

@alexcrichton
Copy link
Contributor

As an update on the Cargo side of things, of the issues that're mentioned here:

@larsbergstrom
Copy link
Contributor Author

Thanks for the update! Things look great overall.

You're right that we can wait on the other two. Some clarifying comments below, but I don't have any pushback on punting them.

  • We can certainly wait on Add support for make jobservers rust-lang/cargo#1744 - it mainly manifests as unintelligible build breaks ("Permission denied" while building Servo) for contributors with machines without < 4GB of RAM. We've gotten pretty used to seeing and commenting on it (just use "./mach build -j 1"), so it's not super urgent.
  • I suspect that if Cargo/rustc do not provide a solution for caching files in the target directory for Distributed crate cache rust-lang/cargo#1997, the Gecko team will probably just extend their sccache tool to wrap calls to rustc to copy down cached output files.

@aturon
Copy link

aturon commented Feb 16, 2016

@larsbergstrom Regarding caching, I think part of the problem is a lack of clarity about the design constraints/requirements. At some point, we can more aggressively seek them out. But it's not obvious to me when the right timing is, or whether e.g. it's best to let Gecko try to find their own way first. (It's not clear whether a naive wrapping of rustc will do the trick.)

Any sense on when this is likely to become a real issue? I would assume not until they're building a serious amount of Rust code?

@larsbergstrom
Copy link
Contributor Author

@aturon I'll ask around. I suspect that it depends on whether or not Rust/Cargo "behave well" with the new artifact builds in Firefox (https://groups.google.com/forum/#!topic/mozilla.dev.builds/jGg69m0x6Ck ). That is, can we just download all of the prebuilt files in the object dir and have things work?

CC @ncalexan (who did much of that work).

@ncalexan
Copy link

@larsbergstrom this ticket is pretty broad, and the discussion of caching doesn't really say what you want to do. Artifact builds download the major compiled libraries from Mozilla's automation; the big one is libxul.so. I have only followed the rustc integration at a distance, but it's my understanding that y'all produce .o files that are linked into existing libraries (including libxul.so). If that's true, then any Rust integration into the Gecko tree should "just work" with artifact builds. (Of course, Rust developers won't be able to get the speed advantages of artifact builds, but that'll teach you to use a compiler :))

@rillian is the person I tap to keep abreast of Rust/Gecko integration progress -- perhaps he can add color here?

@larsbergstrom
Copy link
Contributor Author

@ncalexan Sorry about that! I'll move the convo out of the metabug off to where it should be (rust-lang/cargo#1997).

@larsbergstrom
Copy link
Contributor Author

larsbergstrom commented May 18, 2016

Most of the Servo-critical stuff here has been fixed.

Issues relevant to using Rust/Cargo in Gecko have been moved to an internal google doc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B-feature-tracking This issue tracks a particular high-level feature
Projects
None yet
Development

No branches or pull requests