> >> I'm also interested in seeing proposals for standardization of more
> >> complex attributes that we have static analysis results for--in
> >> particular, the stack class/heap class/etc. annotations, the
> >> must_override analysis, and expanding override/must_override to refer to
> >> nonvirtual as well as virtual methods.
> >
> > I'm not familiar with these annotations (other than 'override') -
> > can I find more information about them somewhere?
>
> <http://dxr.mozilla.org/mozilla-central/source/mfbt/Attributes.h#l384>
> is the list of analyses we currently do in Mozilla. I know must_override
> has been mentioned once or twice with respect to C++ standardization,
> but I can't recall where.

Interesting. How is this static analysis implemented - a clang plugin?
Does it cause compiler errors or warnings when the annotations aren't
obeyed?

I haven't heard any discussion of such annotations in Chicago. One
attribute, [[deprecated]], was standardized, but that's it. I'll keep 
my eyes open and let you know if I come across any talk of them.

> >> The implementation timeframe of modules is also interesting, since it
> >> appears to be the best-proposed solution to solving various #include
> >> problems.
> > See my previous post about modules. In a nutshell, C++17 at the earliest.
> 
> What is the feedback from non-Clang developers about prototyping in
> their compilers? Are we likely to see this implemented as soon as stable
> wording is finalized, or are compiler vendors likely to drag their feet
> and implement it in the last tranche of updates (basically, is the
> uptake going to be like auto or rvalue references, or will it be like
> generalized attributes or alignof).

I'm not aware of other compilers actively working on it at the moment.
It sounded like they were waiting for clang to implement it to see
if the idea is viable at all.

An EDG developer present at the meeting pointed out that many of the
difficulties in implementing modules are the same difficulties that
are involved in implementing 'export'. EDG was the only compiler
that implemented 'export', so that's not a very encouraging sign,
but I also think the level of demand is much higher for modules
(which most people agree will be very useful) than it was for export
(which most people agreed was useless).

One thing that was brought up is that clang was able to leverage
its PCH (pre-compiled header) implementation, which is basically
just a serialized AST, for its implementation of modules, but
GCC's PCH implementation, which is just a compiler memory dump,
is less suitable for this purpose. This suggests that it will
require more effort for GCC to implement modules than clang.

> > Neither of these proposals are on track for C++14. I *believe* they're
> > not on track for the Concurrency Technical Specification that will
> > follow, either, though I don't think the contents of that have been
> > finalized yet.
>
> Huh.

I'll post a follow-up email about the various Technical 
Specifications that are in the works, and what's likely to be
in them.

Botond
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to