Agreed! Thanks to you, Ralph, and everyone (especially the build
peers!) who has been providing feedback/reviews and trying to stand up
examples integrating various Rust or Servo code into Gecko so that we
could find the blockers quickly.

For people who would like to follow along without adding themselves to
all of the bugs, we try to keep https://wiki.mozilla.org/Oxidation up
to date with the current status of this integration work.


On Thu, Apr 21, 2016 at 10:38 AM, Ralph Giles <gi...@mozilla.com> wrote:
> Thanks, Nathan. This is really great to see!
>
>  -r
>
> On Thu, Apr 21, 2016 at 7:57 AM, Nathan Froyd <nfr...@mozilla.com> wrote:
>> Bug 1163224 has landed on inbound, which means that Gecko builds with
>> --enable-rust now support multiple Rust crates.  This change is
>> intended to make the lives of people developing Rust components
>> easier, and it comes with several caveats:
>>
>> 1) There is zero support for interdependencies between crates, so you
>> have to structure your crate as one big crate that includes any
>> dependencies, rather than several separate crates, as is the norm.
>> This is clearly suboptimal, and it will be fixed.  I think it's an
>> open question exactly how we're going to integrate multiple crates and
>> external projects anyway, so feel free to experiment!
>>
>> 2) We do not have Rust support on all of our Tier 1 platforms (Android
>> is still being worked on), so actually depending on Rust code
>> everywhere is still not possible.
>>
>> 3) Due to bug 1178897, Rust code uses a completely different memory
>> allocator than the rest of Gecko.  We therefore don't have any
>> visibility into Rust's memory allocations through things like
>> about:memory, using Rust code worsens fragmentation issues, and there
>> are also edge cases with allocating in C++ and freeing in Rust (or
>> vice versa).  This is obviously something we're going to fix, ideally
>> soon.
>>
>> We --enable-rust on all of our Tier 1 desktop platforms, but given 2)
>> and 3) above, it seems best to limit the amount of Rust code we
>> actually ship.  So if you want to land Rust components in-tree right
>> now, I'd recommend gating your component behind an --enable-shiny
>> configure option.  Ideally 2) and 3) will be fixed in short order, 1)
>> will be ironed out, and then the real fun can begin!
>>
>> Thanks,
>> -Nathan
>> _______________________________________________
>> dev-platform mailing list
>> dev-platform@lists.mozilla.org
>> https://lists.mozilla.org/listinfo/dev-platform
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to