Oxidation2: Difference between revisions

557 bytes removed ,  5 December 2017
No edit summary
Line 149: Line 149:
= Blockers and obstacles =
= Blockers and obstacles =


- Identify and fix pain points that affect Rust integration.
This section lists areas where Rust integration could be improved.
 
== Raw Rust code (lives in m-c) blockers ==
 
* {{done|}} Top-level metabug: {{bug|oxidation}}
* {{done|}} Android support: {{bug|1220307}}
** Though Android still not a Tier-1 Rust platform: https://forge.rust-lang.org/platform-support.html
* Linux distro support for Rust: [https://internals.rust-lang.org/t/perfecting-rust-packaging/2623]
* {{done|}} Need to improve call stacks: {{bug|1268328 }}
 
== Rust / Cargo nice-to-haves ==


* Tracking bug: Make the developer experience for Firefox + Rust great: {{Bug|rust-great}}
* Tracking bug: Make the developer experience for Firefox + Rust great: {{Bug|rust-great}}
* Artifact caching [https://github.com/rust-lang/cargo/issues/1997]
* Shared Gecko/Servo components are painful
** Landing/merging process
* Any remaining crash report issues? {{bug|1348896}}
* Debugging?
** Tom Tromey is working on improving gdb and lldb support for Rust. The first step is to establish Rust language support in dwarf that is distinct from the C++ support we're currently using.
* IDE/symbol lookup support?
* Code coverage?
* Profiling?
** Especially for parallel code
* Test integration?
== Things blocking new components from being written in Rust ==
* Bindings/interop
* Bindings/interop
** No IPDL binding generator
** No IPDL binding generator
** No WebIDL binding generator for DOM components (Servo must have something here?)
** No WebIDL binding generator for DOM components (Servo must have something here?)
** No XPIDL binding generator ({{bug|1293362}}
** No XPIDL binding generator ({{bug|1293362}})
** Immature rust-bindgen and cheddar/cbindgen tools for general cross-language support.
** Immature rust-bindgen and cheddar/cbindgen tools for general cross-language support.
* Slow compile times
* Compile speed
** Incremental compilation ([https://github.com/rust-lang/rust/labels/A-incr-comp A-incr-comp issues], [https://github.com/rust-lang/rust/labels/WG-compiler-incr WG-compiler-incr issues])
** Incremental compilation ([https://github.com/rust-lang/rust/labels/A-incr-comp A-incr-comp issues], [https://github.com/rust-lang/rust/labels/WG-compiler-incr WG-compiler-incr issues])
** [https://github.com/rust-lang/rust/pull/44841 ThinLTO]
** [https://github.com/rust-lang/rust/pull/44841 ThinLTO]
** [https://users.rust-lang.org/t/contract-opportunity-mozilla-distributed-compilation-cache-written-in-rust/13898 Distributed compilation cache]
** [https://users.rust-lang.org/t/contract-opportunity-mozilla-distributed-compilation-cache-written-in-rust/13898 Distributed compilation cache]
* Debugging niggles
** [https://github.com/rust-lang/cargo/issues/1997 Artifact caching]?
* Management (landing, merging, etc.) of Shared Gecko/Servo components
* Remaining minor crash report issues {{bug|1348896}}
* Debugging: improve gdb and lldb support for Rust. The first step is to establish Rust language support in DWARF distinct from the existing C++ support.
* IDE/symbol lookup support?
* Code coverage?
* Profiling improvements? Especially for parallel code
* Test integration?


= Meetings =
= Meetings =
Confirmed users
1,345

edits