On Sun, 2023-11-12 at 11:56 +0100, Iain Buclaw wrote: > Excerpts from David Malcolm's message of November 10, 2023 10:42 pm: > > gcc/d/ChangeLog: > > * lang.opt.urls: New file, autogenerated by > > regenerate-opt-urls.py. > > --- > > gcc/d/lang.opt.urls | 95 + > > create mode 100644 gcc/d/lang.opt.urls > > > > [abridged view of patch] > > > diff --git a/gcc/d/lang.opt.urls b/gcc/d/lang.opt.urls > > new file mode 100644 > > index 000000000000..57c14ecc459a > > --- /dev/null > > +++ b/gcc/d/lang.opt.urls > > @@ -0,0 +1,95 @@ > > +; Autogenerated by regenerate-opt-urls.py from gcc/d/lang.opt and > > generated HTML > > + > > +H > > +UrlSuffix(gcc/Preprocessor-Options.html#index-H) > > + > > +I > > +UrlSuffix(gcc/Directory-Options.html#index-I) > > + > > +M > > +UrlSuffix(gcc/Preprocessor-Options.html#index-M) > > + > > +MD > > +UrlSuffix(gcc/Preprocessor-Options.html#index-MD) > > + > > +MF > > +UrlSuffix(gcc/Preprocessor-Options.html#index-MF) > > + > > +MG > > +UrlSuffix(gcc/Preprocessor-Options.html#index-MG) > > + > > +MM > > +UrlSuffix(gcc/Preprocessor-Options.html#index-MM) > > + > > +MMD > > +UrlSuffix(gcc/Preprocessor-Options.html#index-MMD) > > + > > +MP > > +UrlSuffix(gcc/Preprocessor-Options.html#index-MP) > > + > > +MT > > +UrlSuffix(gcc/Preprocessor-Options.html#index-MT) > > + > > +MQ > > +UrlSuffix(gcc/Preprocessor-Options.html#index-MQ) > > + > > +Waddress > > +UrlSuffix(gcc/Warning-Options.html#index-Waddress) > > + > > +; skipping 'Wall' due to multiple URLs: > > +; duplicate: 'gcc/Standard-Libraries.html#index-Wall-1' > > +; duplicate: 'gcc/Warning-Options.html#index-Wall' > > + > > +Walloca > > +UrlSuffix(gcc/Warning-Options.html#index-Walloca) > > + > > +Walloca-larger-than= > > +UrlSuffix(gcc/Warning-Options.html#index-Walloca-larger-than_003d) > > + > > +Wbuiltin-declaration-mismatch > > +UrlSuffix(gcc/Warning-Options.html#index-Wbuiltin-declaration- > > mismatch) > > + > > +Wdeprecated > > +UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated) > > + > > +Werror > > +UrlSuffix(gcc/Warning-Options.html#index-Werror) > > + > > +Wextra > > +UrlSuffix(gcc/Warning-Options.html#index-Wextra) > > + > > +Wunknown-pragmas > > +UrlSuffix(gcc/Warning-Options.html#index-Wno-unknown-pragmas) > > + > > +Wvarargs > > +UrlSuffix(gcc/Warning-Options.html#index-Wno-varargs) > > + > > +; skipping 'fbuiltin' due to multiple URLs: > > +; duplicate: 'gcc/C-Dialect-Options.html#index-fbuiltin' > > +; duplicate: 'gcc/Other-Builtins.html#index-fno-builtin-3' > > +; duplicate: 'gcc/Warning-Options.html#index-fno-builtin-1' > > + > > +fexceptions > > +UrlSuffix(gcc/Code-Gen-Options.html#index-fexceptions) > > + > > +frtti > > +UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-rtti) > > + > > +imultilib > > +UrlSuffix(gcc/Directory-Options.html#index-imultilib) > > + > > +iprefix > > +UrlSuffix(gcc/Directory-Options.html#index-iprefix) > > + > > +isysroot > > +UrlSuffix(gcc/Directory-Options.html#index-isysroot) > > + > > +isystem > > +UrlSuffix(gcc/Directory-Options.html#index-isystem) > > + > > +nostdinc > > +UrlSuffix(gcc/Directory-Options.html#index-nostdinc) > > + > > +v > > +UrlSuffix(gcc/Overall-Options.html#index-v) > > + > > -- > > 2.26.3 > > > > > > So I see this focuses on only adding URLs for common options, or > options > that relate to C/C++ family, but may be handled by other front-ends > too?
The regenerate-opt-urls.py script only parsed buildir/gcc/HTML/gcc-14.0.0/gcc/Option-Index.html looking for anchors for options via a regex. Looking at the docs I now see that various frontends have their own Option-Index.html, e.g.: gdc/Option-Index.html so probably regenerate-opt-urls.py ought to be parsing those also, and marking the generated .opt.urls as being lang-specific. That way we could (somehow) generate a options-urls.cc that has logic (perhaps with langmasks) for giving out different URLs for different frontends. > > To pick out one, you have: > > frtti > UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-rtti) > > It looks like it could could alternatively be > > frtti > UrlSuffix(gdc/Runtime-Options.html#index-frtti) > > Or are other front-ends having URLs to their language-specific > documentation pages not supported for the same reason as why they > can't > add self-documentation to their own options if another front-end > (typically C/C++) also makes claim to the option? Implementation-wise that would need fixing in the way I'm handling the UrlSuffix directives; perhaps with a LangUrlSuffix directive. > > frtti > D > ; Documented in C > > > I'm OK with the D parts regardless of this observation. Thanks Dave