<div dir="ltr"><div>Hi, I am a developer that loves to work in Ada.  Mostly recently, LLVM was added as a supported backend/frontend. I'm not sure whether to call it a front end or back end, since LLVM is in the middle between Ada/other-language and native executable.</div><div><br></div><div>My understanding is that a huge benefit of using LLVM is faster support for new CPUs or platforms.  Since C/C++ is usually the first language supported for a new environment, it makes sense to have something that will share that system support with other languages looking to support that same environment.  <br></div><div><br></div><div>As far as I understand, the greater analysis abilities of LLVM are also very useful and are very close to cross-platform with little to no modifications.  I know code compiled to LLVM assembly or bitcode is not cross platform, but I respect the benefits that make it very close to cross platform. <br></div><div><br></div><div> I am not in charge of the project that I am mentioning here and hoping you will add to a list of projects that connect to LLVM.  I just feel it is appropriate for Ada, now imperfectly supporting compiling to LLVM, since you have Rust and a few other obscure languages mentioned that compile to LLVM.  I will offer a description with <i>some</i> polish, though I am not always praised for my writing style:</div><div><br></div><div>"<br></div><div>Ada is a high integrity focused language comparable to C++ in feature support and age, but with syntax very similar to Pascal.  It is less known due to it being preferred mostly where integrity is desired over development speed, though it is not slow to develop in.  Such uses include air traffic control, NASA projects, train control systems, flight control systems, embedded medical systems, etcetera. Support was added for compiling to LLVM, .Net, and JVM over the last two decades.  LLVM support is not proven reliable for large business use and may have limited or no support for some of the fancier features Ada is known for.<br></div><div><br></div><div>Several features Ada is favored for include: <br></div><div><ul><li>exceedingly readable and maintainable over decades, <br></li><li>native task/subprocess/multi-CPU support, <br></li><li>very precise control over how data is structured and aligned in memory, right down to the bits and bytes,<br></li><li>very strong typing and very explicit access/pointer typing - making it very hard to mistake a type and it's pointer,</li><li>built in memory management via types that can be coded for clean-up when they go out of scope, storage pools (automatically expanding and contracting heap-type memory), and efficient stack usage (small functions can be explicitly inlined),</li><li>very easy to memorize and effective standard library,</li><li>very cross-platform syntax/language - assembly, interfacing, and OS limited concepts may make a particular project OS dependant, but the standard library and syntax will work on any OS,</li><li>support for direct Assembly Language functions and embedding, and<br></li><li>support for interfacing with various other programming languages<br></li></ul><div>"</div><div><br></div><div>So, the feature list is a bit long and I suggest you just not include it if it can't be presented as a bullet list.  It's main purpose is to demonstrate the features possibly not supported in the LLVM support.  For someone browsing interesting LLVM related projects this is something they might like to know before they invest time in a very high level language like Ada.<br></div></div></div>