On Tue, Mar 13, 2018 at 09:05:50AM +0200, Henri Sivonen wrote:
> On Tue, Mar 13, 2018 at 2:29 AM, Ryan VanderMeulen
> <rvandermeu...@mozilla.com> wrote:
> > While I know I'm tempting fate by sending this out while the patches are
> > still on autoland, I wanted to start giving people a heads-up now that bug
> > 1424281 has been pushed, which will make Visual Studio 2017 15.6 (Update 6)
> > the minimum version required to build Gecko 61+ once it merges to m-c.
> >
> > This change brings a number of improvements over version 15.4, which is
> > what we've been using in automation since Gecko 58, including performance
> > wins and better C++17 support.
> Thank you!
> It seems that 
> https://developer.mozilla.org/en-US/docs/Mozilla/Using_CXX_in_Mozilla_code
> doesn't match this information. Also, it seems that last week Gecko
> stopped compiling with clang 3.8 even though that page says clang 3.6
> is supported.
> To be clear, I'm not arguing that we should support old compilers, but
> it would be good to keep that page up-to-date.
> On the topic of old compilers, it looks like we could get more C++
> features if we changed the minimum gcc requirement. Is Debian
> oldstable the current reason for keeping gcc at 4.9?

No, the reason we're stuck with 4.9 is that hazard builds are still
using 4.9. The GCC plugin used for those builds needs to be updated, and
hopefully that will happen soon.

> In particular, C++17 structured bindings (gcc 7) would make working
> with tuple return values more ergonomic than working with them is
> today and more ergonomic than working with outparams. Instead of

The best we can bump to right now is GCC 6, which is what we currently
use to build the releases. GCC 7 may or may not require more work.

>   uint32_t result;
>   size_t read;
>   size_t written;
>   bool hadErrors;
>   Tie(result, read, written, hadErrors) = mDecoder->DecodeToUTF16(...);
> one would write
>   auto [result, read, written, hadErrors] = mDecoder->DecodeToUTF16(...);
> bringing ergonomics closer to Rust's ergonomics.

I'm not sure type inference in C++ is something to look forward to. In
rust, although it can be painful to figure out what type a binding has,
at least there's not too many possible coercions. In C++ my gut reaction
is that that looks like a foot-chaingun.

dev-platform mailing list

Reply via email to