<div dir="ltr"><div>Patrick, how long does the crawl take? I suspect if we fixed internal documentation links so that they point to local copies of documentation when building locally it would be quite quick (no actual idea though). That in turn would probably make it feasible to add to the existing documentation build bots, I think.</div><div><br></div><div>James<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 29 Aug 2019 at 03:47, Neil Nelson via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p><font size="-1">Patrick, You have identified a good way to do
this. Given it is likely that the links are to files in a
directory structure on a single server with that file
structure/path given by the link text, as we see in your dead
link list, and that in a good number, perhaps likely a large
majority of the cases, that the file names (less the directory
path) are unique,</font></p>
<p><font size="-1">It would be a fairly direct procedure to
associate links by their file name (less path) with file
locations. The process would then update the links for the
correct paths, list links without an existing file, and list
dead links having more than one existing file with the same
name.</font></p>
<p><font size="-1">The frequency of that run would depend on the
frequency of dead-link discovery that the run could provide.<br>
</font></p>
<p><font size="-1">Regards, Neil Nelson</font><br>
</p>
<div class="gmail-m_7144157776072443842moz-cite-prefix">On 8/28/19 7:52 PM, Patrick Nappa via
llvm-dev wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Hi all,</div>
<div><br>
</div>
<div>I'm currently in the process of updating the Kaleidoscope
tutorials (first and foremost, the ORC/BuildingAJIT ones), and
I've noticed a fair few 404s which are lingering within the
current visible documentation. Some of these don't seem to
have linked to existing pages for a while.</div>
<div><br>
</div>
<div>I was wondering if there was a way to set up a check in the
buildbot to ensure that documentation doesn't break between
builds? I'm happy to fix the current dead links I've found
(see below) but thought it might be wise to set up a more
automated approach in the future. Does anyone have any tips on
how I'd go about doing this/if this should be set up at all?<br>
</div>
<div><br>
</div>
<div>I ran a web crawler to find each of the dead links (this
may not be exhaustive), and they are as follows: <br>
</div>
<div><span style="font-family:monospace"><a href="https://llvm.org/docs/TestSuiteMakefileGuide" target="_blank">https://llvm.org/docs/TestSuiteMakefileGuide</a></span><br>
<span style="font-family:monospace"><a href="https://llvm.org/docs/doxygen/structLICM.html" target="_blank">https://llvm.org/docs/doxygen/structLICM.html</a><br>
<a href="https://llvm.org/docs/tutorial/LangImpl5.html#for-loop-expression" target="_blank">https://llvm.org/docs/tutorial/LangImpl5.html#for-loop-expression</a><br>
<a href="https://llvm.org/docs/tutorial/LangImpl7.html#user-defined-local-variables" target="_blank">https://llvm.org/docs/tutorial/LangImpl7.html#user-defined-local-variables</a><br>
<a href="http://llvm.org/docs/lnt/modindex.html" target="_blank">http://llvm.org/docs/lnt/modindex.html</a><br>
<a href="https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl6.html#user-defined-unary-operators" target="_blank">https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl6.html#user-defined-unary-operators</a><br>
<a href="https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl5.html#for-loop-expression" target="_blank">https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl5.html#for-loop-expression</a><br>
<a href="https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl7.html#user-defined-local-variables" target="_blank">https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl7.html#user-defined-local-variables</a><br>
<a href="https://llvm.org/docs/tutorial/LangRef.html#instruction-reference" target="_blank">https://llvm.org/docs/tutorial/LangRef.html#instruction-reference</a><br>
<a href="https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl4.html#adding-a-jit-compiler" target="_blank">https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl4.html#adding-a-jit-compiler</a><br>
<a href="https://llvm.org/docs/tutorial/WritingAnLLVMPass.html" target="_blank">https://llvm.org/docs/tutorial/WritingAnLLVMPass.html</a><br>
<a href="https://llvm.org/docs/tutorial/Passes.html" target="_blank">https://llvm.org/docs/tutorial/Passes.html</a><br>
<a href="https://llvm.org/docs/tutorial/ProgrammersManual.html#viewing-graphs-while-debugging-code" target="_blank">https://llvm.org/docs/tutorial/ProgrammersManual.html#viewing-graphs-while-debugging-code</a><br>
<a href="https://llvm.org/docs/tutorial/SourceLevelDebugging.html" target="_blank">https://llvm.org/docs/tutorial/SourceLevelDebugging.html</a><br>
<a href="https://llvm.org/docs/tutorial/Frontend/PerformanceTips.html" target="_blank">https://llvm.org/docs/tutorial/Frontend/PerformanceTips.html</a><br>
<a href="https://llvm.org/docs/tutorial/GetElementPtr.html" target="_blank">https://llvm.org/docs/tutorial/GetElementPtr.html</a><br>
<a href="https://llvm.org/docs/tutorial/GarbageCollection.html" target="_blank">https://llvm.org/docs/tutorial/GarbageCollection.html</a><br>
<a href="https://llvm.org/docs/tutorial/ExceptionHandling.html" target="_blank">https://llvm.org/docs/tutorial/ExceptionHandling.html</a><br>
<a href="https://www.llvm.org/docs/doxygen/structLICM.html" target="_blank">https://www.llvm.org/docs/doxygen/structLICM.html</a><br>
<a href="http://llvm.org/docs/TestSuiteMakefileGuide" target="_blank">http://llvm.org/docs/TestSuiteMakefileGuide</a><br>
<a href="http://llvm.org/docs/doxygen/structLICM.html" target="_blank">http://llvm.org/docs/doxygen/structLICM.html</a><br>
<a href="https://www.llvm.org/docs/TestSuiteMakefileGuide" target="_blank">https://www.llvm.org/docs/TestSuiteMakefileGuide</a><br>
<a href="http://llvm.org/docs/tutorial/LangImpl5.html#for-loop-expression" target="_blank">http://llvm.org/docs/tutorial/LangImpl5.html#for-loop-expression</a><br>
<a href="http://llvm.org/docs/tutorial/LangImpl7.html#user-defined-local-variables" target="_blank">http://llvm.org/docs/tutorial/LangImpl7.html#user-defined-local-variables</a></span>
</div>
<div><br>
</div>
<div>Some of these are trivial mistakes (i.e. <a href="https://llvm.org/docs/tutorial/LangRef.html#instruction-reference" target="_blank">https://llvm.org/docs/tutorial/LangRef.html#instruction-reference</a>
-> <a href="https://llvm.org/docs/LangRef.html#instruction-reference" target="_blank">https://llvm.org/docs/LangRef.html#instruction-reference</a>),
and some require a bit more inspection.<br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div>Patrick<br>
</div>
</div>
<br>
<fieldset class="gmail-m_7144157776072443842mimeAttachmentHeader"></fieldset>
<pre class="gmail-m_7144157776072443842moz-quote-pre">_______________________________________________
LLVM Developers mailing list
<a class="gmail-m_7144157776072443842moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>
<a class="gmail-m_7144157776072443842moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>