<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">https://llvm.org/docs/tutorial/LangRef.html#instruction-reference</a> -> <a href="https://llvm.org/docs/LangRef.html#instruction-reference">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>